不确定为什么x.nextInt();不工作。我做错了什么?
String w = "", x = JOptionPane.showInputDialog("Please enter the a"
+ "mount of attackers then the number of\ndefenders separa"
+ "ted by a space.", e + " " + f);
int a = 0, d = 0, g = x.length(), h = 6;
if("0 0".equals(x))
{
break;
}
e = b = x.nextInt();
注意:我会使用Integer.parseInt但是我需要从这个字符串中提取两个数字,而不仅仅是一个
在某些情况下还有一个“!”最后是另一项行动。
答案 0 :(得分:0)
x
是String
个实例。并且String类中没有名为nextInt
的方法。你需要
e = b = Integer.parseInt(x);
来自OP的评论
我会这样做,但你通常从这个程序得到的输入 是“##”,我希望将这些数字分开
然后将每个整数存储在一个数组中,然后解析它们。像
String[] integers = x.split(" ");
e = Integer.parseInt(integers[0]);
b = Integer.parseInt(integers[1]);
OP的编辑后再次
在某些情况下还有一个“!”最后是另一项行动。
String[] integers = x.split(" ");
try {
e = Integer.parseInt(integers[0]);
} catch (NumberFormatException ex) {
e = 0; // special character
}
try {
b = Integer.parseInt(integers[1]);
} catch (NumberFormatException ex) {
b = 0; // special character
}
答案 1 :(得分:0)
x
是String
,您正在从字符串中触发x.nextInt();
,该字符串不会编译并产生编译时错误说明
对于String
类型,未定义方法nextInt()
可能你需要,
e = b = Integer.parseInt(x);
因为,你要求两个由空格分隔的整数,这样你就可以拆分
string
并获得两个数字。
String []numbers = x.split(" ");
e = Integer.parseInt(numbers[0]);
b = Integer.parseInt(numbers[1]);
答案 2 :(得分:0)
你的代码很乱,所以最好清理一下:
w=""
)x = JOptionPane...
)
String w,x
)声明多个变量,但最重要的是如果你正在进行初始化inputString
优于x
然后你会看到x
是一个String而String-class没有nextInt
- 只在Scanner
- 类中的方法。由于您需要将两个值拆分(例如使用String
的{{1}} - 方法),然后通过split()
将它们转换为int
或使用两个输入对话框(或最好的带有两个输入字段的自定义对话框。)