我有一个方法可以将扫描仪返回到包含输入行的文本文件(我无法正常显示,但是喜欢 - 嗨(新行)这个(\ 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;
}
有谁知道如何解决这个问题,以便它能做到应有的事情?
答案 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++;
}