我正在尝试从系统中读取。输入是这样的:第一个数字是测试用例的数量,然后是整数,然后是一些行。
2
10
c 1 5
c 2 7
q 7 1
1
q 1 1
c 1 1
q 1 1
问题是,尽管循环中存在sc.hasNext()
条件,但当我完成最后一个测试时,while循环不会退出。
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int testCases = sc.nextInt();
for(int i=0;i<testCases; i++){
int numberOfQuestions = 0;
int numberOfSuccessufulQuestions = 0;
int computerNumber = sc.nextInt();
Graph g = new Graph();
while(!sc.hasNextInt() && sc.hasNext()){
String type = sc.next();
if (type.trim().equals("\n"))
break;
if(type.equals("c")){
int a = sc.nextInt();
int b = sc.nextInt();
g.setEdge(a, b);
}else if(type.equals("q")){
visited = new HashMap<>();
int a = sc.nextInt();
int b = sc.nextInt();
numberOfQuestions++;
if(a == b){
numberOfSuccessufulQuestions++;
}
else if(g.isNodeExist(a) && g.isNodeExist(b)){
if(connected(g, a, b)){
numberOfSuccessufulQuestions++;
}
}
}
}
System.out.println(numberOfSuccessufulQuestions+ ","+ (numberOfQuestions - numberOfSuccessufulQuestions) );
}
}
扫描仪很好,因为它看起来像是要输入临时信息。
问题是sc.next()不会被控制台中简单的回车键触发。
我在这里看到的用命令终止循环的解决方案。
而不是如果(type.trim(). equals(\n))
使用类似于(type.trim(). equals(退出))
问题内容: 编辑 以便进一步阅读:问题是我的输入文件已损坏。 我不明白我在做什么错: 我正在使用此代码: 哪个工作正常。现在,由于某种原因,我想换一个扫描仪。我的代码变成: 这次,我们从不输入while,因为r.hasNextLine()始终返回“ false”。关于我在做什么错的任何想法吗? 我精确地说,没有其他更改,文件仍然相同。 编辑 :我还精确地我尝试了另一个文件,并得到相同的结果,这意味
问题内容: 我正在尝试做的是拥有多个具有不同变量的输入。每个变量将是不同方程式的一部分。我正在寻找一种方法来做,我想我有一个主意。我只想知道这是否合法,也许还有更好的方法。 问题答案: 如果每个输入都问相同的问题,则应使用循环和输入数组: 或者如Chip所建议的,您可以从一行中解析输入: 您在正确的轨道上,所做的工作正常。这只是一种更好,更灵活的处理方式。
问题内容: 我正在玩Scanner类,以进行学习,并且我使用它来读取非常大的文件(大约60.000行,大约不使用Reader类),并且在大约400行后停止读取。我是否必须在Scanner的构造函数中使用Bufferedreader还是问题?我想知道为什么会这样。谢谢。我的代码是输出所有行的常用代码。 问题答案: 此问题通常在64位计算机上或文件大小大于1-2 GB的文件中更常见,并且与堆空间无关。
我想在我的代码中手动读取一些值。除了最后一个(lambda2)之外,它对所有值都有效。我可以无限地继续键入值,即使它们不是双精度的,也不会发生任何事情。如果我用任何其他值键入其他值,我会收到一条错误消息,以及第一次输入lambda2时的错误消息。我在另一个代码中以类似的方式(最终只创建了一个不同的对象)进行了操作,并且效果很好。
我有麻烦更新一个变量的名称为一个对象使用扫描器。我提供一个菜单给用户,用户选择他的选择(更新名称),程序要求用户输入新的名称,扫描器读取system.in并更新变量的名称。唯一的问题是程序不能读取带有空格的字符串。例如: 如果键入类似的内容,则可以执行此操作,但如果键入,则将得到,输出示例如下 所以我猜它只读取t,当扫描器扫描shipProperty值时,它读取dog而不是等待输入。我读过关于的文