如果字符串包含从扫描仪输入给出的信息,则打印子字符串。 (JAVA)

时间:2014-09-26 22:37:29

标签: 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 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的东西,然后将其打印出来,那么系统不打印出来并且我有它。我是编程的新手,所以我不知道我是否有正确的编写。有人可以帮我搞定吗?

2 个答案:

答案 0 :(得分:1)

再看一下你的if声明:

if (Letter.contains(LettersTwo))

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

if (LettersTwo.contains(Letter))

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

答案 1 :(得分:0)

最明显的方法是使用if语句或switch语句。 Anther方法,似乎是你想要做的,是使用String的数组。 (请注意,当您开始在变量名称的末尾添加数字时,这表明您应该使用数组。)如果您想获得幻想,可以将其转换为{{1}的查找表}。

您还应该查看Map<Character, Integer>的文档。它不会像你试图使用它一样工作。