Java 如果字符串包含扫描仪输入的信息,则打印子字符串。(爪哇)

Java 如果字符串包含扫描仪输入的信息,则打印子字符串。(爪哇),java,Java,以下是我所拥有的: 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 Letter

以下是我所拥有的:

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”。我将数字与子字符串中的大写字母相关联。系统没有打印出来,我所拥有的是,如果字母包含来自字母two的内容,那么就打印出来。我是编程新手,所以我不知道我写的是否正确。有人能帮我工作吗?

最明显的方法是使用
if
语句或
switch
语句。另一种方法是使用
String
数组,这似乎是您正在尝试的。(请注意,当您开始在变量名的末尾添加数字时,这强烈表明您应该使用数组。)如果您想更喜欢,可以将其转换为带有
映射的查找表


您还应该查看
String.contains()
的文档。它的工作方式与您试图使用它的方式不同。

请再次查看您的
if
语句:

if (Letter.contains(LettersTwo))
在这里,您要检查单个字母是否包含一串字母。从逻辑上讲,这将返回
false
。但如果你这样使用它:

if (LettersTwo.contains(Letter))

您正在检查一组字母是否包含单个字母。

字符串字母two=“a”+“B”+“C”
String LettersTwo=“ABC”要多得多
并生成相同的结果。谢谢。我没有意识到我就是这样得到的。我猜当你是新来的时候会发生这样的事。没问题。每个人都从某个地方开始:)