当前位置: 首页 > 知识库问答 >
问题:

如何使用扫描仪使此switch语句工作?

全丰
2023-03-14

我正在尝试编写一个程序,可以将字母表中的任何字母(大小写)转换成拼音字母表。例如,如果我输入“a”或“a”,我的程序将给我(更改为)“alpha”。我对这个和switch语句做了很多研究,但我总是卡住。我已经意识到我不能在扫描仪中使用“char”。然而,当我将“char”更改为“string”时,我的switch语句就会出错(特别是代码中的toUpperCase被下划线。我看不出我的错误。下面是我到目前为止所做的:

import java.util.Scanner;
public class PhoneticTranslate {
public static void main(String[] args) {


char letter;
String phonetic;

Scanner kb = new Scanner(System.in);


System.out.print("Please enter a letter: ");
letter = kb.next();

switch(Character.toUpperCase(letter))
{
case 'A':
    phonetic = "Alpha";
break;
case 'B':
    phonetic = "Bravo";
    break;
case 'C':
    phonetic = "Charlie";
    break;
case 'D': 
    phonetic = "Delta";
    break;
case 'E':
    phonetic = "Echo";
    break;
case 'F':
    phonetic = "Foxtrot";
    break;
case 'G':
    phonetic = "Golf";
    break;
case 'H':
    phonetic = "Hotel";
    break;
case 'I':
    phonetic = "India";
    break;
case 'J':
    phonetic = "Juliet";
case 'K':
    phonetic = "Kilo";
    break;
case 'L':
    phonetic = "Lima";
    break;
case 'M':
    phonetic = "Mike";
    break;
case 'N':
    phonetic = "November";
    break;
case 'O':
    phonetic = "Oscar";
    break;
case 'P':
    phonetic = "Papa";
    break;
case 'Q':
    phonetic = "Quebec";
    break;
case 'R':
    phonetic = "Romeo";
    break;
case 'S':
    phonetic = "Sierra";
    break;
case 'T':
    phonetic = "Tango";
    break;
case 'U':
    phonetic = "Uniform";
    break;
case 'V':
    phonetic = "Victor";
    break;
case 'W':
    phonetic = "Whiskey";
    break;
case 'X':
    phonetic = "X-Ray";
    break;
case 'Y':
    phonetic = "Yankee";
    break;
case 'Z':
    phonetic = "Zulu";
    break;


}

}
}

共有1个答案

支智志
2023-03-14

你需要用Charat。Scanner.Next()方法返回String而不是Char,因此需要将String转换为Char

letter = kb.next().charAt(0);
 类似资料:
  • 我是java新手,我的任务是使用扫描器读取数组,并在另一种方法中读取int。 我正在做的是计算一只兔子到达河对岸所需的最小跳跃次数。数组中的int表示从河的一边开始的石头的距离,另一个int表示石头的数量。兔子能跳的最远距离是50。 对于输入和输出: 输入n:7(输入,河中的石头数)32 46 70 85 96 123 145(输入,石头与起点之间的距离,最后一个数字是河的宽度,即目的地(河对岸)

  • 我正在为课堂做作业。由于某种原因,程序完全跳过了用户应该键入变量的部分。我想不出任何理由为什么它会以这种方式运行,因为我的其余代码位于部分之后(它要求诸如和类型之类的东西)工作正常且有序。

  • 我有一个简单的Do-While循环,它使用的扫描器功能不正常。代码应该显示一个文本,提示用户输入字符串,用户输入字符串,然后程序再次显示相同的文本,并提示用户输入另一个字符串。 程序所做的是显示正确的消息,用户输入一个字符串,然后提示用户输入一个字符串,但用户输入之前没有文本。用户输入文本后,它就会正常工作。 查看我的代码,我看不出程序有任何理由在不向用户显示文本的情况下提示用户两次输入。

  • 问题内容: 我搜索了类似的问题,但没有一个帮助。 考虑一个文件: 你好你好吗? 当时你在哪里? 我想在每行结束后进行一些操作。如果我使用它,则不会告诉我何时到达第一行的末尾。 我也看到了,但是它只会告诉我是否存在另一行。 问题答案: 考虑使用多个扫描仪,一个扫描仪获取每一行,另一扫描仪扫描每行。我唯一要说明的是,使用完内部扫描仪后,请务必确保将其关闭。实际上,使用完 所有 扫描仪后,您将需要关闭它

  • 问题内容: 请问我关于扫描仪的问题;我在一家小公司工作;我们有一个软件;它生成一个大文本文件;而且我们必须从中得到一些有用的信息; 我想用Java编写一个简单的应用程序以节省时间;你能指导我吗? 例如我要这个输出; 输出量 RFID:25蓝色:562 WifiID:2610 RFID:33 RFID数量:2 例如;这是我的文本文件,因为使用我们的软件生成的每个文件都有14000行:) 我用此源代码

  • 问题内容: 我正在使用扫描仪逐行读取文本文件,但是由于扫描仪遍历每个输入,因此如何获取行号?我的程序是这样的: 这很好用,但是例如: 我想知道它的行号,这意味着1,2,3在第1行中,而3,4,5在第2行中。我如何得到它? 问题答案: 在扫描程序执行操作时,您可以使用代替来跟踪行号。 注意: 由于扫描程序会先读取当前令牌,因此我最初发布的“明显”解决方案不起作用。 ~~~~