【发布时间】:2021-07-06 13:52:26
【问题描述】:
我有一个包含以下条目的文本文件“unsorted.txt”输入:
37060635563
37067264426
37061457700
37067116332
37068672376
37068669157
我希望 Java 按以下方式在输出文件“sorted.txt”中整理和格式化这些数字。
+370 606 35563
+370 614 57700
+370 686 69157
+370 686 72376
+370 671 16332
+370 672 64426
我已经对 Java 代码进行了排序,但它只产生一个条目,我找不到原因?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.io.File;
import java.io.FileWriter;
public class PhoneSort {
public static void main(String[] args) {
final String regex = "(\\\\d{3})(\\\\d{3})(\\\\d*)";
final String subst = "+$1 $2 $3";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
File us = new File("unsorted.txt");
File st = new File("sorted.txt");
String result = "";
try (Scanner sc = new Scanner(us)){
while (sc.hasNextLine()) {
try (FileWriter writer = new FileWriter(st)) {
writer.write(pattern.matcher(sc.nextLine()).replaceAll(subst));
} catch(IOException e){}
}
}
catch (IOException e){}
}
}
【问题讨论】:
-
永远不要只消耗错误,而是将其打印到控制台,以便您查看失败的原因
catch (IOException e){e.printStackTrace();},此外,您需要在每次写入后关闭文件写入器,或者您需要声明您的文件编写器在您的 while 循环之外,而不是每次都尝试创建一个新的。 -
686之前出现了哪些条目671?
标签: java regex sorting text java-io