【发布时间】:2013-11-01 17:30:44
【问题描述】:
我在 java 中遇到了拆分函数的问题。我正在从文件中读取字符串列表并将它们存储到两个数组列表中。每个字符串包含一个字母 + 空格 + 数字。我使用 split 函数来获取其中一个数组列表中的字母和另一个数组列表中的数字。 numbers arraylist 正确添加数字,但是 letters 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));
代码数组列表的输出:
1
01
001
000
字母数组列表的输出:
a
b
c
d
【问题讨论】:
-
\r或\n等空格前后是否有换行符?如果是这样,可以试试split("\\s+")? -
我试过了,但没用:/
-
那么我无法重现您的问题。我怀疑您使用的代码不同,或者输入文件的格式与您显示的不同。
标签: java regex string arraylist