带有.nextInt()的字符串到整数;不工作

时间:2013-12-04 14:44:07

标签: java string int

不确定为什么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但是我需要从这个字符串中提取两个数字,而不仅仅是一个

在某些情况下还有一个“!”最后是另一项行动。

3 个答案:

答案 0 :(得分:0)

xString个实例。并且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)

xString,您正在从字符串中触发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...
  • 虽然在java中可能没有使用单个type-keyword(String w,x)声明多个变量,但最重要的是如果你正在进行初始化
  • 使用有意义的变量名称,例如inputString优于x

然后你会看到x是一个String而String-class没有nextInt - 只在Scanner - 类中的方法。由于您需要将两个值拆分(例如使用String的{​​{1}} - 方法),然后通过split()将它们转换为int或使用两个输入对话框(或最好的带有两个输入字段的自定义对话框。)