【发布时间】:2012-05-12 13:08:23
【问题描述】:
我正在尝试为我的项目编写一个简单的代码 如果用户键入
步行 10 分钟
我需要在我的 walk(distance) 方法中使用“walk”命令,因为距离 = 10 我有类似的东西
while (!quit) {
Scanner in = new Scanner(System.in);
String input = in.nextLine();
// if (walk x is typed) {
walk(x);
}
}
我正在使用 java.util.scanner 另一个问题是我的方法 walk(int x) 使用 int 所以我需要将 String 输入转换为 int
我在网上搜索了一段时间,但找不到我要找的东西(或者我不明白)
如果您能帮助我,我将不胜感激,谢谢
非常感谢大家的解答,我最初的问题已解决 但现在我有另一个问题 当我只输入“walk”时,它会得到数组越界异常 当然,因为它试图将 null 转换为 int(不可能) 我试过这个并在网上检查过
try {
Integer.parseInt(splitStrings[1]);
}
catch(NumberFormatException e) {
System.out.println("error: " + e);
}
仍然没有帮助(我不擅长尝试/捕获) 因此,如果用户键入walk without a distance,我需要给出错误消息 再次感谢
好的,我也知道了 只是用了一个简单的东西
if ("walk".equals(splitStrings[0])) {
if (splitStrings.length == 2) {
int distance = Integer.parseInt(splitStrings[1]);
Robot.walk(distance);
}
if (splitStrings.length != 2) {
System.out.println("Entry must be like walk 10");
}
}
【问题讨论】:
-
它们之间有空格吗?
-
是的,用户类型 walk 10 或 walk 25
-
使用 split 获取输入行中的所有标记后,您可以通过 Integer.parseInt 获取您需要的 int 值