Java toUpperCase(char)方法?

Java toUpperCase(char)方法?,java,switch-statement,control-structure,Java,Switch Statement,Control Structure,我看到这个问题在这里被问了很多,但我似乎不明白为什么当输入是小写字符时我的代码不工作 当我输入小写字符时,它似乎会无休止地执行,直到我终止它。我使用了Character.toUpperCase(char)方法,但我假设我没有正确使用它,或者代码的格式有问题 我就是搞不懂。我知道我可以简单地添加case'a':case'a':以允许小写和大写输入,但我希望将来能够使用Character.toUpperCase(char)方法 有人能帮忙吗?提前谢谢 System.out.println("

我看到这个问题在这里被问了很多,但我似乎不明白为什么当输入是小写字符时我的代码不工作

当我输入小写字符时,它似乎会无休止地执行,直到我终止它。我使用了Character.toUpperCase(char)方法,但我假设我没有正确使用它,或者代码的格式有问题

我就是搞不懂。我知道我可以简单地添加case'a':case'a':以允许小写和大写输入,但我希望将来能够使用Character.toUpperCase(char)方法

有人能帮忙吗?提前谢谢

    System.out.println("Please enter seven letters that you would like to convert into numbers:");
    String inputNumber = console.next();

    while (i < 8) {
        letter = inputNumber.charAt(i);
        Character.toUpperCase(letter);
        if (i == 3)
        {
            outputNumber = outputNumber + "-";
        }
        switch(letter)
        {
        case 'A': case 'B':
        case 'C': outputNumber = outputNumber + "2";
            i++;
        break;

        case 'D': case 'E':
        case 'F': outputNumber = outputNumber + "3";
            i++;    
        break;

        case 'G': case 'H':
        case 'I': outputNumber = outputNumber + "4";
            i++;    
        break;

        case 'J': case 'K':
        case 'L': outputNumber = outputNumber + "5";
            i++;
        break;

        case 'M': case 'N':
        case 'O': outputNumber = outputNumber + "6";    
            i++;
        break;

        case 'P': case 'Q': case 'R':
        case 'S': outputNumber = outputNumber + "7";
            i++;
        break;

        case 'T': case 'U': 
        case 'V': outputNumber = outputNumber + "8";        
            i++;
        break;

        case 'W': case 'X': case 'Y':
        case 'Z': outputNumber = outputNumber + "9";
            i++;
        break;  
        case ' ': outputNumber = outputNumber + " ";
        break;
        default: outputNumber = "Invalid input.";       
    }
} System.out.println(outputNumber);
System.exit(0);
System.out.println(“请输入要转换为数字的七个字母:”);
字符串inputNumber=console.next();
而(i<8){
字母=输入编号。字符(i);
字符.图珀格(字母);
如果(i==3)
{
outputNumber=outputNumber+“-”;
}
开关(字母)
{
案例“A”:案例“B”:
案例“C”:outputNumber=outputNumber+“2”;
i++;
打破
案例“D”:案例“E”:
案例“F”:outputNumber=outputNumber+“3”;
i++;
打破
案例“G”:案例“H”:
案例“I”:outputNumber=outputNumber+“4”;
i++;
打破
案例“J”:案例“K”:
案例“L”:outputNumber=outputNumber+“5”;
i++;
打破
案例“M”:案例“N”:
案例“O”:outputNumber=outputNumber+“6”;
i++;
打破
案例“P”:案例“Q”:案例“R”:
案例:outputNumber=outputNumber+“7”;
i++;
打破
案例“T”:案例“U”:
案例“V”:outputNumber=outputNumber+“8”;
i++;
打破
案例“W”:案例“X”:案例“Y”:
案例“Z”:outputNumber=outputNumber+“9”;
i++;
打破
案例“”:outputNumber=outputNumber+“”;
打破
默认值:outputNumber=“无效输入。”;
}
}System.out.println(输出编号);
系统出口(0);

字符。大写字母
不会修改
字母
,因为
字符
是不可变的,即使它不是,也不能通过将变量的值传递给方法来修改它

你需要写:

letter = Character.toUpperCase(letter);
或替换:

letter = inputNumber.charAt(i);
Character.toUpperCase(letter);

要么写

    letter = Character.toUpperCase(inputNumber.charAt(i));


letter=Character.toUpperCase(字母)哇,太简单了。非常感谢。
    letter = Character.toUpperCase(inputNumber.charAt(i));
    switch (Character.toUpperCase(letter)) {