【发布时间】:2017-05-05 13:50:02
【问题描述】:
为了验证用户输入的国家/地区,我尝试将该国家/地区输入与存储在文本文件中的国家/地区列表进行比较。如果输入与存储在文本文件中的国家/地区匹配,validCountry 将设置为“true”,程序将能够继续。这是我目前所得到的:
Scanner sc = new Scanner (System.in);
String country = "";
boolean validCountry = false;
while (!validCountry)
{
System.out.print("Country: ");
String countryIn = sc.next();
try{
Scanner scan = new Scanner(new File("countries.txt"));
while (scan.hasNext()) {
String line = scan.nextLine().toString();
if(line.contains(countryIn))
{
country = line;
validCountry = true;
}
}
}catch(Exception e)
{
System.out.print(e);
}
}
上面只是循环让我重新输入国家(暗示它是无效的)。
这就是 countries.txt 文件的样子(显然包含世界上所有的国家,而不仅仅是以 'A' 开头的前几个国家:
Afghanistan
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
...
我确定这是一个非常简单的小错误,我似乎找不到;但我一直试图检测它一段时间但无济于事。我已经检查了多个其他 stackoverflow 答案,但它们似乎也不起作用。我真的很感激任何形式的帮助:)
如果我的问题需要进一步澄清,请告诉我。
【问题讨论】:
-
你得到什么样的错误?文本文件是否正确加载?
-
我没有收到任何具体错误,它只是循环返回让我输入国家/地区。我假设文本文件已正确加载 - 否则控制台会给我一个“找不到文件”错误;它没有..所以我认为它已正确加载?
-
是的,如果您没有收到错误,那么它可能已正确加载。但是,也许您检查 scan.hasNext() 是否曾经返回 true (通过调试或通过 System.out.println()
标签: java validation loops compare text-files