我在这里已经看到了很多问题,但我似乎无法弄清楚为什么我的代码在输入为小写字符时不起作用。
当我输入小写字符时,它似乎无休止地执行,直到我终止它。我已经使用了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);
答案 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)) {