将字符串切换为整数

时间:2013-11-27 20:08:39

标签: java if-statement syntax switch-statement

我需要将变量参数添加到已经包含大量参数的开关案例的语法。上下文提供了上下文。

我正在使用switch case将字符串答案更改为整数返回。而不是让用户回答

这个。
2.别的。

我希望答案看起来像

(Y / N)

我之前用这样的代码完成了它:

static public int getYN() {
    String answer = "";
    switch(keyboard.nextLine().substring(0, 1).toLowerCase()) {
        case "y":
            return 1;

        case "n":
            return 0;

        default:
            return 2;

    }
}



然后使用声明:

int getAnswer = getYN();
        System.out.println();

        if (getAnswer == 1) {
        System.out.println("Stuff.");
        test = 1;
        }
        else {
        System.out.println("Other stuff."); 
        System.out.println();
    }

但是,我不知道将String answer变量放在switch case中的位置。通常,如果您没有使用许多其他参数,那么它只会是

 switch(answer) {
}



2 个答案:

答案 0 :(得分:0)

检查内联,忘记使用专门的方法进行此检查。

    char getAnswer = keyboard.next().charAt(0);

    System.out.println();

    if (getAnswer == 'y' || getAnswer == 'Y') 
    {
        System.out.println("Stuff.");
        test = 1;
    }
    else if( getAnswer == 'n' || getAnswer == 'N')
    {
        System.out.println("Other stuff."); 
        System.out.println();
    }

如果你必须使用开关:

    char getAnswer = keyboard.next().charAt(0);

    switch(getAnswer)
    {
        case 'y':
          System.out.println("Stuff.");
          test = 1;
          break;
        case 'n':
          System.out.println("Other stuff."); 
          System.out.println();
          break;
    }

答案 1 :(得分:0)

你可以在同一行中实现同样的目标:

public static int getYN(String s) {
    return ("yn YN".indrxOf(s) + 3) % 3;
}

处理大写和小写两种情况,并且通过添加3(当找不到目标时indexOf()返回-1)来处理“未找到”默认值2,并且模数意识需要小心处理大写字母索引。

即使我自己这样说,也相当整洁。