java - 如何将两个单词的常用字母大写?
问题描述
问题:编写一个程序,将两个单词作为输入,并找出它们的任何常见字母。例如,单词“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) {
}
解决方案
尚未测试代码,但这里有一个想法:将 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])
如果您想执行不区分大小写的比较。
推荐阅读
- r - 如何在 R 中取消对合并表的分组?
- ios - #AudioKit AudioKit 和 CoreAudio 可以在同一个 iOS 应用程序中互通吗?
- javascript - 这个javascript代码有效吗?它有效率吗?试图创建一个 javascript 用户 ID 和一个会话 ID。不确定我是否有有效的代码
- nlp - 在不平衡引文数据集上使用 LSTM 进行情感分析
- julia - 如何从我的模块中的子模块导出相同功能的多个方法?
- android-studio - 如何在 Android Studio 中使用 Ucanaccess 库?
- javascript - 如何在 html 中使用 jQuery 正确显示下拉菜单
- security - 站点范围的身份验证方法?
- javascript - 第一个技巧,就是errorHandler
- java - 如何在 Java 中不断提示正确的用户输入?