gpt4 book ai didi

java - 我怎样才能让这个 switch 语句识别整数?

转载 作者:行者123 更新时间:2023-12-01 07:35:15 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将字母表中的任何字母(大写或小写)和数字转换为拼音字母表。例如,如果我输入“A”或“a”,我的程序会给我(将其更改为)“Alpha”。此外,如果我输入“1”,它将返回“One”。我已经成功地完成了“输入任意字母”方面的工作,但我的程序无法识别数字。我尝试输入int,但我的扫描仪无法识别这一点。我在代码中设置了默认,但仍然......没有占上风。我应该使用 if 语句吗?

进一步说明:这个问题是此question的延续。

这是我到目前为止所得到的:

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

int number = 0;
char letter;
String phonetic = null;

Scanner kb = new Scanner(System.in);


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

switch(Character.toUpperCase(letter))
{
case 'A':
phonetic = "Alpha";
break;
case 'B':
phonetic = "Bravo";
break;
// ... rest of cases for letters
case 'Z':
phonetic = "Zulu";
break;
default:

Scanner x = new Scanner(System.in);
number = kb.nextInt();

switch(number)
{
case '1':
phonetic = "One";
break;
case '2':
phonetic = "Two";
break;
// ... rest of cases for numbers
case '8':
phonetic = "Eight";
break;
case '9':
phonetic = "Nine";
break;
}

}
System.out.println("You Entered " + letter + ". This letter indicates: " + phonetic);
System.out.println("You Entered" + number + ". This number indicates: " + phonetic);


}
}

最佳答案

巨大的 switch/case 子句是一种代码味道,试试这个:

将每个键/值对添加到 Map 中,然后使用 get 检索值。无需开关/外壳。

String letter;
String phonetic;
Map<String,String> codes = new HashMap<String,String>();
codes.put("A","Alpha");
codes.put("B","Bravo");
codes.put("C","Charlie");
codes.put("D","Delta");
// not showing all "puts" to make it shorter
codes.put("W","Whiskey");
codes.put("X","X-Ray");
codes.put("Y","Yankee");
codes.put("Z","Zulu");
codes.put("0","Zero");
codes.put("1","One");
// not showing all "puts" to make it shorter
codes.put("9","Nine");

Scanner kb = new Scanner(System.in);

System.out.print("Please enter a letter: ");
letter = kb.next().toUpperCase(); // convert key to uppercase

phonetic = codes.get(letter); // search the value in the map using the key

if (phonetic == null) {
System.out.println("bad code : " + letter);
} else {
System.out.println("Phonetic: " + phonetic);
}

关于java - 我怎样才能让这个 switch 语句识别整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com