Java-扫描程序未正确读取字符串
我正在为一个学校项目编写一个程序,在这个程序中,我读取了一个Java-扫描程序未正确读取字符串,java,csv,java.util.scanner,jgrasp,Java,Csv,Java.util.scanner,Jgrasp,我正在为一个学校项目编写一个程序,在这个程序中,我读取了一个.csv文件,并根据其中的数据进行计算 System.out.println("Please enter a second data set to search:\nFor example, type 'narcotics, poss,' 'criminal damage,' or 'battery.'\nCapitalization does not matter."); secondDataSet = scan.ne
.csv
文件,并根据其中的数据进行计算
System.out.println("Please enter a second data set to search:\nFor example, type 'narcotics, poss,' 'criminal damage,' or 'battery.'\nCapitalization does not matter.");
secondDataSet = scan.nextLine().toUpperCase();
System.out.println("Searching for instances of " + secondDataSet);
if (!secondDataSet.equals(""))
{
while (inputStream.readLine() != null)
{
String[] all = line.split(splitBy);
if (all[8].toUpperCase().equals("TRUE"))
{
numArrests++;
}
if (all[8].toUpperCase().equals("FALSE"))
{
numNonArrests++;
}
if (all[5].equals(secondDataSet))
{
secondDataCount++;
}
numberOfLines++;
line = inputStream.readLine();
}
if (secondDataCount == 0)
{
i--;
System.out.println("The data set you entered does not exist.\nPlease try checking your spelling or reformatting your response.");
}
以上是我正在使用的代码的一部分,其中包含我的扫描仪问题。我正在读一份.csv
,里面有过去几年芝加哥的逮捕记录。但是,每次我运行程序时,它都会跳过scan.nextLine()
。它只是执行我的打印语句“请输入第二个数据集…”,然后打印“搜索的实例”
我正在使用jGRASP,我的编译器如下所示:
Please enter a data set to search:
For example, type 'narcotics, poss,' 'criminal damage,' or 'battery.'
Capitalization does not matter.
Searching for instances of
它循环了四次,没有得到用户的输入。我尝试改为使用scan.next()
,但当我输入一个包含两个单词的字符串时,这不起作用,因为.csv
中有一些值,如“刑事损害”和scan.next()
分别搜索了“刑事”和“损害”两个单词。如果有人对如何让电脑停下来阅读scan.nextLine()
有任何建议,请使用scan.next()
阅读两个单词,或者使用任何其他解决方案,我将不胜感激
我现在对此感到非常困惑,所以任何帮助都是非常好的,因为我花了大量的时间在我需要完成的大型项目的一小部分上。。。此外,如果我的问题不清楚或含糊不清,我可以澄清您可能有的任何问题 请发布完整的代码很可能缓冲区中有CRLF:s(来自您未发布的代码),因此在等待新输入之前,它将对其进行处理。感谢所有快速响应的人!我刚刚能够通过在我的主方法中加入“for”循环来解决这个问题(经历了很多挫折),尽管我不完全理解这是如何解决这个问题的。我在一个紧迫的时间期限,所以我将不得不在我完成该计划后进一步研究这个问题。