检查用户输入的字符串是否包含相同的字母

时间:2019-11-20 01:31:08

标签: java compare

如何检查用户通过扫描仪输入的字符串(用户可以选择要输入的单词数)是否包含相同的字母?假设用户输入以下3个单词:

种族 自行车 电脑

此示例中的每个单词都包含“ e”和“ c”。如何比较这些字符串并将结果(e和c)保存在新字符串中?

public class Comparison {


public static void main(String[] args) {

    String letters = "";


    Scanner input = new Scanner(System.in);
    System.out.println("How many words do you want to type in?:");
    count = input.nextInt();

    String[] words= new String[count];


    for (int i = 0; i < words.length; i++) {
        if (words[i].charAt(0) == words[j].charAt(0)) {
            letters = letters + words[i].charAt(j);
        }
}
}

1 个答案:

答案 0 :(得分:0)

这里需要几块。

  1. 使用扫描仪从用户那里获取文字。您不是在问这个。想法是提示,读入输入并生成字符串数组。一种方法是使用split方法。您没有问这部分。您询问拥有此字符串数组后该怎么做。要测试其他部分,可以使用传递给main的args,然后进行开发。

  2. 一种仅在两个字符串之间查找公用字母的方法。您表示您有这样一种方法。所以我不会分享。让我们想象一下它看起来像:

    / **

    • 方法findCommonLetters *
    • @param word1第一个单词
    • @param word2第二个单词
    • @返回包含两个单词中常见字母的字符串,不重复 * /

    public String findCommonLetters(String word1,String word2){ //您的代码在这里  }

  3. 采用任意长度的字符串数组并获得所有字母都相同的方法。那就是你要的。假设您具有2工作中所述的方法,则可以使用此方法。想法是一次只处理2个字母,然后在下一个单词中查找到目前为止所有单词中共有的字母(然后循环直到我们处理完所有单词为止)。代码如下:

    / **

    • 方法findCommonLetters *
    • @param words一个单词数组
    • @return一个字符串,其中包含所有单词的字母 * /

公共字符串findCommonLetters(String []个字)

 {
            if (words.length == 0) {
                return ""; //there are no letters
            } else if (words.length == 1) {
                //if the desired behavior is as I do here, this else if block could go away
                return words[0]; //trivially all the words have the same letters
            } else {
                String result = words[0]; // first word
                for (int i = 1; i < words.length; i++) {
                    result = findCommonLetters(result, words[i]); //find letters in common between all words processed so far and next word
                    //if you want, you could break here if result is empty
                }
                return result;
            }
        }

将这三部分放在一起将得到期望的结果。