如何检查多行字符串是否在Java中包含另一个多行字符串?

问题描述 投票:0回答:2

1。我尝试使用包含函数,但它不起作用,仅当b =“ 30-10-1960 \ n”或b =“ Posephine Esmerelda Bloggs \ n”时,该函数才起作用。如何检查a是否包含b?2.这是我写的代码。

String a = "name Posephine Esmerelda Bloggs\n" + 
        "birthday 30-10-1960\n" + 
        "address 102 Smith St, Summer hill, NSW 2130\n" + 
        "";
String b = "Posephine Esmerelda Bloggs\n" + 
        "30-10-1960\n";
System.out.println("a.contains(b)");
java string contains multilinestring
2个回答
0
投票

我认为您在这里想要的逻辑是断言b字符串的每个line出现在a字符串中的某个位置:

String a = "name Posephine Esmerelda Bloggs\n" + 
    "birthday 30-10-1960\n" + 
    "address 102 Smith St, Summer hill, NSW 2130\n" + 
    "";
String b = "Posephine Esmerelda Bloggs\n" + 
    "30-10-1960\n";
String[] lines = b.split("\n");

// now check each line
boolean all = true;
for (String line : lines) {
    if (!a.contains(line)) {
        all = false;
        break;
    }
}

if (all) {
    System.out.println("MATCH");
}
else {
    System.out.println("NO MATCH");
}

此打印:

MATCH

0
投票

它可以尝试这个-

String a = "name Posephine Esmerelda Bloggs\n" + 
            "birthday 30-10-1960\n" + 
            "address 102 Smith St, Summer hill, NSW 2130\n" + 
            "";
    String b = "Posephine Esmerelda Bloggs\n" + 
            "birthday 30-10-1960\n";
    System.out.println(a.contains(b));

您的代码中存在一些问题-1.在println方法中用作字符串文字,它必须是一个引用。2.您比较的是不一样的。在“ a”中,“ b”中缺少额外的单词“ birthday”。

我在示例代码中粘贴了正确的字符串序列。

© www.soinside.com 2019 - 2024. All rights reserved.