拆分字符串后,拆分功能会增加新的空格字符

时间:2013-11-01 17:30:44

标签: java regex string arraylist

我在java中遇到分裂函数的问题。我正在从文件中读取字符串列表并将它们存储到两个arraylists中。每个字符串包含一个字母+空格+数字。我使用split函数来获取其中一个arraylist中的字母和另一个arraylist中的数字。 数字arraylist正确添加数字,但字母arraylist添加一个字母后跟空格,但我不知道为什么?!

这是文件:

a 1
b 01
c 001
d 000

代码:

Scanner s = new Scanner(new File("ListOfCodes.txt.txt"));
String output="";   
ArrayList<String> Codes =  new ArrayList<String>();
ArrayList<String>Letters = new ArrayList<String>();
String []separated ;
    while(s.hasNextLine())
    {
        output=s.nextLine();
           separated = output.split(" ");
          for(int k=0;k<separated.length;k++ )
          {   
              if(k==0)
             Letters.add(separated[k]);
              if(k==1)
              Codes.add(separated[k]);

          }
          output="";
    }
      output="";




      for(int i=0;i<Letters.size();i++)
        System.out.println(Letters.get(i));

      for(int i=0;i<Codes.size();i++)
          System.out.println(Codes.get(i));

代码arraylist的输出:

1
01
001
000

字母arraylist的输出:

a

b

c

d

2 个答案:

答案 0 :(得分:2)

您的文件中可能有尾随空格。因此,在将它们存储在列表中之前,最好使用trim方法。

答案 1 :(得分:0)

我建议像这样使用拆分:

separated = output.split("\\s+"); // \\s matches white spaces including newlines as well

这将为您提供最后带有条纹的新行的字符串数组。