首页 > 解决方案 > 如何将两个单词的常用字母大写?

问题描述

问题:编写一个程序,将两个单词作为输入,并找出它们的任何常见字母。例如,单词“computer”和“program”有共同的字母“o”、“m”、“p”和“r”。程序的输入将是一个字符串,该字符串包含两个仅由小写字母字符组成并由一个空格分隔的单词。输出所有常用字母大写的单词。

样本输入输出:输入两个字:计算机程序cCOMPuteR PROgRaM

我是java新手,我已经尝试了我所知道的一切来解决这个问题,几乎没有。你能帮助我吗?

这是我到目前为止所拥有的

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    //User input
    System.out.println("Please input two words. \nExample: computer program");
    String input = scanner.nextLine().toLowerCase();

    //Split the user's input
    String[] inputWords = input.split(" ");
    String firstWord = inputWords[0];
    String secondWord = inputWords[1];

    String commonLettersCaps = capitalizeCommonLetters(firstWord, secondWord);

}

private static String capitalizeCommonLetters(String firstWord, String secondWord) {

}

标签: java

解决方案


尚未测试代码,但这里有一个想法:将 2 个输入转换为 char 数组,然后遍历第一个数组中的每个 char,查找第二个数组中是否有匹配项,如果有,则将当前 2 个索引大写。

char[] firstWordArr = firstWord.toCharArray();
char[] secondWordArr = secondWord.toCharArray();
for (int i = 0; i < firstWordArr.length; i++) {
    for (int j = 0; j < secondWordArr.length; j++) {
        if (firstWordArr[i] == secondWordArr[j]) {
            firstWordArr[i] = Character.toUpperCase(firstWordArr[i]);
            secondWordArr[j] = Character.toUpperCase(secondWordArr[j]);
        }
    }
}
return new String(firstWordArr) + " " + new String(secondWordArr);

在 if 条件下,您可以将其替换为Character.toUpperCase(firstWordArr[i]) == Character.toUpperCase(secondWordArr[j])如果您想执行不区分大小写的比较。


推荐阅读