在Java中逐行处理文本文件和连字符串

时间:2013-08-04 04:49:13

标签: java stringbuilder textinput

我在一个列中有一个包含8,000行的.txt文件。每行包含一个字母数字或这样的数字:

  

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();

我如何让这些作品一起工作?还有另一种方法吗?

2 个答案:

答案 0 :(得分:0)

你的代码看起来很好。如果你做了这些改变,我应该感觉良好:

StringBuilder builder = new StringBuilder(in.nextLine().substring(0,4));

答案 1 :(得分:0)

试试这个

    while (in.hasNextLine()) {
        String line = in.nextLine();
        if (!line.isEmpty()) {
            line = "0" + line.substring(0, 2) + "-" + line.substring(2, 4);
        }
        out.println(line);
    }