Java中的扫描程序问题

时间:2014-02-16 22:52:54

标签: java java.util.scanner

我有一个方法可以将扫描仪返回到包含输入行的文本文件(我无法正常显示,但是喜欢 - 嗨(新行)这个(\ n)是(\ n)我(\ n))的。然后在main中,我使用扫描仪计算输入的行数,然后重置扫描仪。我后来用扫描器把输入行放到一个数组中(我不想要一个ArrayList),但是Java说“java.util.NoSuchElementException:找不到行”......

while(scanner.hasNextLine()){
    numOfStrings++;
    scanner.nextLine();
}

scanner.reset();
String[] stringsOfInput = new String[numOfStrings];
for(int i = 0; i < numOfStrings; i++){
    String s = scanner.nextLine();   //returns "No line found" error message
    stringsOfInput[i] = s;
}

有谁知道如何解决这个问题,以便它能做到应有的事情?

2 个答案:

答案 0 :(得分:2)

执行此操作的最通用方法是将行添加到ArrayList<String>中,然后将其转换为数组(String[] stringsOfInput = myArrayList.toArray(new String[myArrayList.size()]);

答案 1 :(得分:0)

您可能想尝试将for循环的内容放在while中。这样你就可以通过文件在一个循环中获得字符串数和每个字符串。

编辑: 使用ArrayList

的示例
ArrayList<String> stringsOfInput = new ArrayList<String>();

while(scanner.hasNextLine())
{
    stringsOfInput.add(scanner.nextLine());
    numOfStrings++;
}