0

我有一个 .txt 文件,单列中有 8,000 行。每行包含一个字母数字或一个数字,如下所示:

0219381A

10101298

32192017

1720291C

04041009

我想阅读这个文件,在每个开始数字之前插入一个 0(零),在数字 3 和 4 之间插入一个连字符,然后将剩余的数字删除到一个输出文件中,如下所示:

002-19

010-10

032-19

017-20

004-04

我可以在单独完成时读取和写入文件或插入连字符,但不能让这些部分一起工作:

public static void main(String[] args) throws FileNotFoundException{
          // TODO Auto-generated method stub

          Scanner in = new Scanner(new File("file.txt"));
          PrintWriter out = new PrintWriter("file1.txt");

          while(in.hasNextLine())
          {

                 StringBuilder builder = new StringBuilder(in.nextLine());
                 builder.insert(0, "0");
                 builder.insert(3, "-");
                 String hyph = builder.toString();
                 out.printf(hyph);
          }
          in.close();
          out.close();

我怎样才能让这些部分一起工作/还有其他方法吗?

4

2 回答 2

0

你的代码看起来不错。如果您进行此更改,您应该会感觉很好:

StringBuilder builder = new StringBuilder(in.nextLine().substring(0,4));
于 2013-08-04T04:56:53.907 回答
0

尝试这个

    while (in.hasNextLine()) {
        String line = in.nextLine();
        if (!line.isEmpty()) {
            line = "0" + line.substring(0, 2) + "-" + line.substring(2, 4);
        }
        out.println(line);
    }
于 2013-08-04T05:06:20.217 回答