我在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
答案 0 :(得分:2)
您的文件中可能有尾随空格。因此,在将它们存储在列表中之前,最好使用trim
方法。
答案 1 :(得分:0)
我建议像这样使用拆分:
separated = output.split("\\s+"); // \\s matches white spaces including newlines as well
这将为您提供最后带有条纹的新行的字符串数组。