当前位置: 首页 > 知识库问答 >
问题:

在两个字符串中查找常见字母(Java)[关闭]

卢才艺
2023-03-14

目标是在两个给定的Stringss1s2中找到共同的字母。

常见符号的字符串必须至少有两个字母长。

String s1 = "BAABBBAABBA";
String s2 = "BBBABBBAA";
  1. 步骤:
s1 = BAA**BBBA**ABBA
s2 = **BBBA**BBBABA

len = 4
s1 = BAA____A**BBA**
s2 = ____B**BBA**BA

len = 3

我是一个初学者,在这个案子上挣扎了4个小时。有人能帮我吗?很高兴能收到java的解决方案。

提前谢谢。

共有2个答案

温镜
2023-03-14
public class example {

    public static void main(String[] args) {
        String string1 = "dabdabdab", string2 = "badbadbad";//In this case the result will be a, a, a, and the count will be 3.
        char a,b;
        int count = 0, y = string1.length(), x = 0;
        char[] charArray;
        for (int i = 0; i < string1.length();i++){
            a = string1.charAt(i);
            b = string2.charAt(i);
            if (a == b){
                count++;
            }
        }
        charArray = new char[count];//Just for the array to have the size of the exact common elements of the strings.
        for (int i = 0; i < string1.length();i++){
            a = string1.charAt(i);
            b = string2.charAt(i);
            if (a == b){
                charArray[x] = a;
                x++;
            }
        }
        //Check if the array has the correct amount of elements.
        for (int i = 0; i < charArray.length; i++){
            System.out.print(charArray[i]);
        }
    }
}

享受评论以获取更多建议。

吴宏扬
2023-03-14

也许下面的代码对你有帮助。其思想是从一个字符串中创建所有可能的子字符串,以检查该子字符串是否包含在另一个字符串中。

import java.util.HashSet;
import java.util.Set;

public class Test {

    public static void main(String[] args) {

        String s1 = "BAABBBAABBA";
        String s2 = "BBBABBBAA";

        Set<String> foundSet = new HashSet<>();

        for (int start = 0; start < s1.length() - 1; ++start) {

            for (int end = start + 2; end <= s1.length(); ++end) {
                String subString = s1.substring(start, end);
                if (s2.contains(subString)) {
                    foundSet.add(subString);
                }
            }
        }

        foundSet.forEach(System.out::println);
    }
}
 类似资料:
  • 问题内容: 我正在尝试 使用循环从两个不同的用户输入中打印常用字母。(我需要使用for循环来完成它。)我遇到了两个问题:1.我的语句“ If char not in output …”没有提取唯一值。2.输出为我提供了单个字母列表,而不是单个字符串。我尝试分割输出,但是分割遇到类型错误。 问题答案: 您正在尝试执行“设置相交”。Python有 相同的方法。您可以将其用于您的用例,例如: 将返回字符

  • 假设和。现在比较和,找出常见的字母。然后用普通大写字母打印str1。怎么做? 输出:

  • 问题内容: 我有一个字符串“ BC + D * E-”。我想检查字符串的每个字符是否为字母。我尝试使用isLetter(),但它甚至将=,*和-都视为字母。请您帮我一下。谢谢 问题答案: 尝试

  • 问题内容: 因此,我试图在用户输入的字符串中查找所有大写字母,但始终出现此运行时错误: 我觉得很愚蠢,但我无法弄清楚,Oracle甚至在有关java.lang.StringIndexOutOfBoundsException的页面上谈论了charAt。 这是我的代码,用于查找大写字母并打印它们: 我非常感谢您的任何投入和/或帮助。 问题答案: 应该 请记住,数组索引从零开始。 字符串长度返回 字符串

  • 想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 如何知道Java字符串中是否存在特定的键。例如, 字符串str1=“ArsS | fdkeyS1:abc”; String str2="ArsS|fd keyS1: abc"; 在这种情况下,我在字符串中搜索keyS1,在str1中搜索应该返回False(因为整个键应该用任何其他字符分隔),而对于str2,我们应该得到True。 附

  • 我试图在许多字符串上找到一个常见的(最常见的,甚至是“平均”)短语。不同字符串之间的结构非常糟糕,并且充满了不一致性。许多字符串都添加了与所需输出无关的唯一位:一个新字符串,其作用类似于字符串集的某种摘要。 为了说明这一点,我提供了一个小示例,实际数据更复杂,由更多字符串组成: 示例数据: 在一个更小的数据集上,结构要复杂得多,我以前一直依赖字数: 在这个更简单的数据集上,只需选取n个最常见的短语