while(scan.hasNext()){
String line = scan.next();
String[] tempArray = line.split(",\\s*");
for (int i=0; i<3; i++){
System.out.println(tempArray[i]);
}
我的输入文件如下:
A, 0, 3
C, 2, 2
BB, 3, 3
DA, -3, 0
ED, 2, -2
它返回A,然后给我一个错误。是什么给了什么?
答案 0 :(得分:1)
我会在逗号上分开,然后trim()
分隔String
,
while(scan.hasNextLine()){ // <-- hasNextLine()
String line = scan.nextLine(); // <-- nextLine()
String[] tempArray = line.split(","); // <-- split on the comma.
for (int i=0; i<tempArray.length; i++){ // <-- use the array length
System.out.println(tempArray[i].trim()); // <-- trim() the String
}
}
答案 1 :(得分:0)
String line = scan.next();
对于您的输入文件,首次访问时,line
将等于"A,"
,这不是您想要的。
这是因为Scanner#next()
只读取空白字符,该字符存在于A,
和0,
之间的输入文件中。因此,为什么只返回A,
。
改为使用
String line = scan.nextLine();
在换行前会读到。因此,第一个循环会将line
设置为"A, 0, 3"
。
调试可以真正帮助提高编程能力。打印出line
的返回以查看正在处理的内容可能肯定有助于此。然后能够弄清楚产生这些结果的正在发生的事情要容易得多。