这里是Java新手,尝试扫描下面表单中的输入:
3
3 3
101
000
101
public static void main(String[] args) {
Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
int t = in.nextInt(); // t: 3, in.nextInt(): 3 as expected
for (int i = 1; i <= t; i++) { // i: 1, t: 3, in.nextInt(): 3 (not sure which "3")
int row = in.nextInt();
// after this line in.nextInt(): 101 and row: 0 which are all WEIRD
int column = in.nextInt();
// now here it's in.nextInt(): 2 and column: 2
int world[][] = new int[row][column];
// in.nextInt(): 11 now and as we see it changed its value when I didn't even call it
TreeMap<Integer, ArrayList<int[]>> distancesRandAcc = new TreeMap<Integer, ArrayList<int[]>>();
distancesRandAcc.put(0, new ArrayList<int[]>());
for (int j = 0; j < row; j++) {
int temp = in.nextInt();
char[] s = Integer.toString(temp).toCharArray();
for (int k = 0; k < column; k++){
world[j][k] = Character.getNumericValue(s[k]);
}
}
int result = calculateDeliveryTime(world, row, column, distancesRandAcc);
System.out.println("Case #" + i + ": " + result);
}
}
拜托,有更有经验的人能教我如何解决这个问题吗?我发现一些问题与。nextline()和。nextint()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉...
(如果需要,我会添加更多信息)
您正在调用nextint()
,因此输入000
被解析为数字0
,因此int
返回值为0
。因此integer.toString()
将返回字符串“0”
。你为什么对此感到惊讶?
因为您实际上并不关心作为数字的输入,所以只需使用next
:
for (int j = 0; j < row; j++) {
String s = in.next();
for (int k = 0; k < column; k++) {
world[j][k] = Character.getNumericValue(s.charAt(k));
}
}
更新
我正试图使用扫描仪从键盘上获取一个int值,但我得到了以下错误: 写入核心转储失败。核心转储已被禁用。要启用核心转储,请在再次启动Java之前尝试“ulimit-c unlimited”
我试图从用户那里得到2个整数。这是我的代码的相关部分: 起初,它抛出一个,所以我使用了。现在,它只需跳过扫描器并立即调用。
这让我很费解。我正在试图理解如何解决Java无法识别我的“settitle”方法存在于第一个“song”之后的问题。这是一个音乐应用程序。它还有另外两个类。我们将非常感谢所有的帮助。 编辑:添加歌曲类。
问题内容: 我正在编写一个使用Event类的程序,该类中有一个日历实例和一个String类型的描述。创建事件的方法使用扫描仪获取月,日,年,小时,分钟和说明。我遇到的问题是Scanner.next()方法仅返回空格之前的第一个单词。因此,如果输入为“我的生日”,则该事件实例的描述就是“我的”。 我做了一些研究,发现人们使用Scanner.nextLine()解决此问题,但是当我尝试这样做时,它只是
我这里有两个代码块。一个扫描器正确地等待用户输入,另一个则直接通过它并调用,返回。下面是工作的块: 下面是没有的块: 这两个都是单独的类,并且是从另一个类中的main方法调用的。基本上,调用,后者又调用某个Player类的方法...这是非工作代码所在的地方。程序中是否有不适合接受输入的时候?我的印象是,任何时候我需要用户输入,我都可以使用这种方法。谢谢!