package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.nio.Buffer;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
String filename1 = args[0];
String filename2 = args[1];
FileReader fr = new FileReader(filename1);
BufferedReader bfrReader = new BufferedReader(fr);
FileWriter fw = new FileWriter(filename2);
BufferedWriter bfrWriter = new BufferedWriter(fw);
StringBuffer buffer = new StringBuffer();
Pattern p = Pattern.compile("(^|\\s)\\b[\\w]{1,6}\\b\\s",Pattern.UNICODE_CHARACTER_CLASS); //патерн - меньше 7 символов
while (bfrReader.ready()){
String line = bfrReader.readLine();
String tmp = line.replaceAll(p.pattern(),","); //заменяю в считанной строке патерн на запятую
buffer.append(tmp+" "); //добавляю в конце обработанной строки пробел
}
String result = buffer.toString().trim().replaceAll("\\s","\\,"); // в результате убераю последний пробел и зменяю пробел на запятую.
bfrWriter.write(result);
bfrWriter.flush();
bfrWriter.close();
bfrReader.close();
}
}
Вопрос как включить уникод, с английскими буквами работает норм, чего не хватает?
оба флага не работают, или не правильно я их использую ...
Pattern.UNICODE_CHARACTER_CLASS
Pattern.UNICODE_CASEpackage com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.nio.Buffer;
public class Solution {
public static void main(String[] args) throws IOException {
String filename1 = args[0];
String filename2 = args[1];
FileReader fr = new FileReader(filename1);
BufferedReader bfrReader = new BufferedReader(fr);
FileWriter fw = new FileWriter(filename2);
BufferedWriter bfrWriter = new BufferedWriter(fw);
StringBuffer buffer = new StringBuffer();
while (bfrReader.ready()){
String line = bfrReader.readLine();
String tmp = line.replaceAll("(^|\\s)\\b[\\W|\\w]{1,6}+\\b\\s",",");
//tmp = tmp.replaceAll("\\s",",");
buffer.append(tmp+" ");
//System.out.println(tmp);
}
String result = buffer.toString().trim().replaceAll("\\s","\\,");
//System.out.println(test);
bfrWriter.write(result);
bfrWriter.flush();
bfrWriter.close();
bfrReader.close();
}
}