toUpperCase(char)方法?

时间:2018-04-15 10:45:14

标签: java switch-statement control-structure

我在这里已经看到了很多问题,但我似乎无法弄清楚为什么我的代码在输入为小写字符时不起作用。

当我输入小写字符时,它似乎无休止地执行,直到我终止它。我已经使用了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);

2 个答案:

答案 0 :(得分:3)

Character.toUpperCase(letter);不会修改letter,因为char是不可变的,即使它不是,也无法修改a的值通过将其传递给方法来变量。

你需要写:

letter = Character.toUpperCase(letter);

或替换:

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

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

答案 1 :(得分:0)

写下

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

    switch (Character.toUpperCase(letter)) {