所以我试图从文件输入创建一个Graph。该文件的第一行包含一个int,该文件中的第二行包含D或U,用于定向和无向。但当我做一些故障排除试图在我的代码中找到错误时,我发现我的扫描仪正在扫描第二行作为空字符串而不是字母D.这是我的代码。我重写了文件,所以我知道文件没有错。
文件是:
7
D
(0, 1)
(0, 3)
.
.
.
代码:
public static Graph createFromFile(String filename) throws FileNotFoundException
{
File file = new File(filename);
Scanner scan = new Scanner(file);
int line1 = scan.nextInt();
vertexCount = line1;
System.out.println(vertexCount);
String line2 = scan.nextLine();
System.out.println(line2);
String linne2 = "\"" + line2 + "\"";
System.out.println(linne2);
if(linne2.equalsIgnoreCase("D")){directed = true;}
else if(linne2.equalsIgnoreCase("U")){directed = false;}
else{System.out.println("This is not the proper input");}
}
输出结果为:
7
""
This is not the proper input
有人知道这个问题的来源吗?
答案 0 :(得分:0)
scan.nextInt函数不会将执行带到下一行。因此,scan.nextLine调用仍在第一行,它从第一行返回其余数据,在本例中基本上是空格。再使用一个scan.nextLine,它将为您提供预期的结果。 另外,请仔细阅读Scanner类的文档,它将清除您的疑虑