Все записывает, кроме русского алфавита, я использую регулярные выражения, и естественно я пробовал А-Яа-я...нифига, английские буквы при этом видит отлично а вот Ю с восьмеркой не видит, я в тупике help me
package com.javarush.task.task19.task1908;
import java.io.*;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Выделяем числа
Считать с консоли 2 пути к файлам.
Вывести во второй файл все целые числа, которые есть в первом файле (54у не является числом).
Числа выводить через пробел.
Закрыть потоки.
Пример тела файла:
12 text var2 14 8ю 1
Результат:
12 14 1
Requirements:
1. Программа должна считывать пути к файлам с консоли (используй BufferedReader).
2. BufferedReader для считывания данных с консоли должен быть закрыт.
3. Программа должна считывать содержимое первого файла (используй BufferedReader c конструктором принимающим FileReader).
4. Поток чтения из файла (BufferedReader) должен быть закрыт.
5. Программа должна записывать во второй файл все числа, через пробел, из первого файла (используй BufferedWriter с конструктором FileWriter).
6. Поток записи в файл (BufferedWriter) должен быть закрыт.
*/
public class Solution {
public static void main(String[] args) throws IOException{
Solution sol = new Solution();
ArrayList<String> list = new ArrayList<>();
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String name1 = buff.readLine();
String name2 = buff.readLine();
buff.close();
try (
BufferedReader br = new BufferedReader(new FileReader(name1));
BufferedWriter bw = new BufferedWriter(new FileWriter(name2))
)
{
while (br.ready()){
String str = String.format("%c",(char)br.read());
list.add(str);
}
String s = String.join("",list);
String[] stArr = s.split(" ");
list.clear();
Boolean b;
String st = null;
for (int i = 0; i < stArr.length; i++) {
b = sol.regEx("[a-zA-Z]+",stArr[i].trim());
if (b == true){
list.add(stArr[i] + " ");
}
}
st = String.join("",list).trim();
bw.write(st);
}
}
public boolean regEx(String str1,String str2){
ArrayList<String> list = new ArrayList<>();
Pattern regex = Pattern.compile(str1);
Matcher m = regex.matcher(str2);
while (m.find()){
String s = m.group();
list.add(s);
}
String res = String.join("",list);
boolean bool ;
if (res != ""){
bool = false;
}else bool = true;
return bool;
}
}