如何比较String和Int

时间:2014-12-27 13:34:06

标签: java int

public static void main(String[] args){     
    String buf;

    buf = JOptionPane.showInputDialog("1, 2 or 3");

    if (buf == 1) {
        Begin2();}//if a
    if (buf == 2) {
        Main.Begin6();}//if b
    if (buf == 3) {
        Main.Begin7();}//if b
}

我有这段代码,但如果无法调用任何Begin方法......

5 个答案:

答案 0 :(得分:2)

要转换为整数,请使用Integer.valueOf(String)

if (Integer.valueOf(buf) == 1) {

更好的选择是使用JOptionPane中的方法,该方法要求输入给定的选择。这样你就可以强制用户输入1,2或3,同时不需要转换为整数。

Integer result = (Integer) JOptionPane.showInputDialog(null, "1, 2 or 3", "title", JOptionPane.QUESTION_MESSAGE, null, new Integer[]{1,2,3}, 1);

if (result == 1) {
  ... 
} else if (result == 2) {
  ...
} else if (result == 3) {
  ...
}

答案 1 :(得分:1)

  1. 使用Integer.parseInt(buf)(最佳方式)
  2. 将其转换为整数
  3. 使用"3".equals(buf)(丑陋)。
  4. 保持字符串并使用switch(如果您使用的是Java 7> =)或if使用equals方法
  5. 有人说您可以将其保留为字符串并使用equalsswitch。是的有效,将其转换为int 可能的事实有点过分,如果输入错误,它将避免您可能的异常

答案 2 :(得分:1)

int value = Integer.parseInt(buff);
if(value == 1){...}

else if(value == 2){...}

else if(value == 3){...}

答案 3 :(得分:0)

执行此任务的不同方法:

Integer.parseInt("3") //这将返回一个整数值

或者您可以使用类String的.equals()

答案 4 :(得分:0)

无论

if("1".equals(buf)) {
    Begin2();
} else if ("2".equals(buf)) {
    Main.Begin6();
} else if ("3".equals(buf)) {
    Main.Begin7();
}

switch(buf) {
    case "1": Begin2(); break;
    case "2": Main.Begin6(); break;
    case "3": Main.Begin7(); break;
    default: break;
}

可以胜任。