package com.javarush.test.level19.lesson05.task03;
/* Выделяем числа
Считать с консоли 2 имени файла.
Вывести во второй файл все числа, которые есть в первом файле.
Числа выводить через пробел.
Закрыть потоки. Не использовать try-with-resources
Пример тела файла:
12 text var2 14 8v 1
Результат:
12 14 1
*/
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException
{
Scanner scanner = new Scanner(System.in);
FileReader reader = new FileReader(scanner.nextLine());
FileWriter writer = new FileWriter(scanner.nextLine());
StringBuilder builder = new StringBuilder();
while(reader.ready()) {
char data = (char) reader.read();
builder.append(data);
}
StringTokenizer st = new StringTokenizer(builder.toString().trim(), " ,./!:;-?");
String[] words = new String[st.countTokens()];
int count = 0;
while(st.hasMoreTokens()) {
words[count++] = st.nextToken();
}
StringBuilder builder1 = new StringBuilder();
for (String word : words) {
if (isDigitMatcher(word)) {
builder1.append(word);
builder1.append(" ");
}
}
String output = builder1.toString().trim();
char[] outChars = output.toCharArray();
for (char outChar : outChars) {
writer.write((int) outChar);
}
scanner.close();
reader.close();
writer.close();
}
private static boolean isDigitMatcher(String word) {
char[] ch = word.toCharArray();
for (char c : ch) {
if (!Character.isDigit(c)) return false;
}
return true;
}
}
Leave A Comment