如何使用 Java 和正则表达式正确排序文件条目

问题描述

我有一个包含以下条目的文本文件“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){}   
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)