【发布时间】:2015-09-18 11:21:59
【问题描述】:
语言:Java。
目标: 布尔数组 gridA[] 应该在从输入读取的任何索引上变为真(即,如果输入是“init_start 2 4 5 init_end”,则 gridA[] 索引 2,4 和 5 应该变为真)。我设法开始工作,但我有两个问题:
输入: init_start int int int int (...) int init_end 例如:init_start 2 6 12 init_end
问题: 输入中任何超过(实例变量)int L(确定数组的索引长度)值的整数都应被忽略,以防止来自数组 gridA[] 域之外的整数产生影响。 使用 if(scanner.nextInt != L){} 似乎不起作用。
我也需要这个方法,或者方法体在输入以“init_start”开始时开始,在输入以“init_end”结束时停止。 如何编写代码,使其可以从同一个输入中读取字符串和整数?
我打算使用 if(scanner.Next=="init_start") 后跟 a = 扫描仪.NextInt;正如我所怀疑的那样,这没有用。
尝试解决: 谷歌搜索后,我尝试将 String initialInputStart 放入扫描仪中: localScanner(initialInputStart); 但我没能做到这一点。我发现的其他信息建议我关闭并重新打开扫描仪,但我需要从单行输入中读取信息,所以我怀疑这会有所帮助。
代码:
java.util.Arrays.fill(gridA,false);
java.util.Arrays.fill(gridB,false);
String initialInput;
String initialInputStart;
int a;
int i;//only for testing
i = 0;//only for testing
System.out.println("type integers"); //only for testing
while( scanner.hasNextInt() && i<5){ //I can't find a way to make loop stop without missing input so I'm using i temporarily
a = scanner.nextInt();
gridA[a] = true;
System.out.print(a);
System.out.print(gridA[a]+" ");
i++;
}//end while
【问题讨论】:
-
一个简单的问题:什么?我真的不明白你的问题。请完全改写您的问题。
-
Appolgoies,我会把事情说得更清楚。
-
你的意思是用户会一次性提供输入而你需要使用它吗?
-
是的,这正是我的目标。虽然我可以暂时接受三个单独的输入。
-
只是猜测
scanner.nextInt()获取 int,但不会继续到控制台的下一行尝试:int yourVariable = Integer.parseInt(scanner.nextLine())
标签: java