1

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

这是文件:

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

字母数组列表的输出:

a

b

c

d
4

2 回答 2

2

您的文件中可能有尾随空格。所以trim在将它们存储在列表中之前更好地使用方法。

于 2013-11-01T17:32:46.303 回答
0

我建议像这样使用拆分:

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

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

于 2013-11-01T17:37:24.613 回答