这就是我所拥有的:
Scanner input = new Scanner(System.in);
System.out.print("Enter an uppercase letter: ");
String Letter = input.next();
String LettersTwo = "A" + "B" + "C";
String DigitTwo = LettersTwo.substring(0) + "2";
String LettersThree = "D" + "E" + "F";
String DigitThree = LettersThree.substring(0) + "3";
String LettersFour = "G" + "H" + "I";
String DigitFour = LettersFour.substring(0) + "4";
String LettersFive = "J" + "K" + "L";
String DigitFive = LettersFive.substring(0) + "5";
String LettersSix = "M" + "N" + "O";
String DigitSix = LettersSix.substring(0) + "6";
String LettersSeven = "P" + "Q" + "R" + "S";
String DigitSeven = LettersSeven.substring(0) + "7";
String LettersEight = "T" + "U" + "V";
String DigitEight = LettersEight.substring(0) + "8";
String LettersNine = "W" + "X" + "Y" + "Z";
String DigitNine = LettersNine.substring(0) + "9";
if (Letter.contains(LettersTwo)) {
System.out.println("The corresponding digit is " + DigitTwo);
}
如果用户输入A,B或C的大写字母,我希望系统打印出来,“相应的数字是2”。我将数字与子字符串中的大写字母相关联。如果Letter包含来自LettersTwo的东西,然后将其打印出来,那么系统不打印出来并且我有它。我是编程的新手,所以我不知道我是否有正确的编写。有人可以帮我搞定吗?
答案 0 :(得分:1)
再看一下你的if
声明:
if (Letter.contains(LettersTwo))
在这里,您要检查单个字母是否包含一串字母。从逻辑上讲,它将返回false
。但如果你这样使用它:
if (LettersTwo.contains(Letter))
您正在检查一组字母是否包含一个字母。
答案 1 :(得分:0)
最明显的方法是使用if
语句或switch
语句。 Anther方法,似乎是你想要做的,是使用String
的数组。 (请注意,当您开始在变量名称的末尾添加数字时,这表明您应该使用数组。)如果您想获得幻想,可以将其转换为{{1}的查找表}。
您还应该查看Map<Character, Integer>
的文档。它不会像你试图使用它一样工作。