当前位置: 首页 > 知识库问答 >
问题:

如何利用Java和正则表达式对文本文件中的数字进行格式化

汪丁雷
2023-03-14

我有一个文本文件“unsorted.txt”输入,包含以下条目:

37060635563
37067264426
37061457700
37067116332
37068672376
37068669157

我希望JavaApplet按照以下方式整理和格式化输出文件“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 {

    /**
     * @param args the command line arguments
     */
    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()) 
                            
                           result = pattern.matcher(sc.nextLine()).replaceAll(subst);     
        }
        catch (IOException e){
        }
        try (FileWriter writer = new FileWriter(st)) {
                         
                          writer.write(result); 
        }
        catch(IOException e){

}
                    }}

共有1个答案

微生学
2023-03-14

难道您的代码不会只写result中保存的最后一个值吗?当然,您应该将从unsorted.txt中读取的内容和对sorted.txt的写入内容放在同一个循环中,否则result会在您有机会将其写入sorted.txt之前不断被覆盖

 类似资料:
  • 问题内容: Java是否具有内置的转义任意文本方式,以便可以将其包含在正则表达式中?例如,如果我的用户输入“ $ 5”,我想在输入结束后精确匹配而不是“ 5”。 问题答案: 在我看到以下示例之前,和之间的区别对我尚不清楚

  • 本文向大家介绍Java正则表达式过滤出字母、数字和中文,包括了Java正则表达式过滤出字母、数字和中文的使用技巧和注意事项,需要的朋友参考一下 1、Java中过滤出字母、数字和中文的正则表达式 (1)过滤出字母的正则表达式       [^(A-Za-z)] (2) 过滤出 数字 的正则表达式    [^(0-9)] (3) 过滤出 中文 的正则表达式        [^(\\u4e00-\\u9

  • 问题内容: 是的,您没看错。我需要能够从正则表达式 生成 随机文本的内容。因此,文本应该是随机的,但要与正则表达式匹配。看来它不存在,但我可能是错的。 仅举一个例子:该库将能够以“ ”作为输入,并生成诸如以下示例: abc abbbc bac 等等 更新:我自己创建了一些东西:Xeger。查看http://code.google.com/p/xeger/。 问题答案: 我刚刚创建了一个库来进行此操

  • 问题内容: 我正在尝试使用Java匹配多行文本。当我将类与修饰符一起使用时,我可以匹配,但不能. 使用和使用相同的模式似乎无效。 我确定我缺少什么,但不知道是什么。正则表达式不是很好。 这就是我尝试过的 问题答案: 首先,你在错误的假设下使用修饰符。 或告诉Java接受锚点并在每行的开头和结尾进行匹配(否则,它们仅在整个字符串的开头/结尾进行匹配)。 或告诉Java也允许点与换行符匹配。 其次,在

  • 本文向大家介绍C#中如何利用正则表达式判断字符,包括了C#中如何利用正则表达式判断字符的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,下面代码给大家介绍下利用正则表达式判断字符的方法,具体代码如下所示: 以上所述是小编给大家介绍的C#中如何利用正则表达式判断字符,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!