用逗号和空格拆分输入的字符串

时间:2014-04-30 02:14:29

标签: java arrays string input split

        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,然后给我一个错误。是什么给了什么?

2 个答案:

答案 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的返回以查看正在处理的内容可能肯定有助于此。然后能够弄清楚产生这些结果的正在发生的事情要容易得多。