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)");
我认为您在这里想要的逻辑是断言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
它可以尝试这个-
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”。
我在示例代码中粘贴了正确的字符串序列。