我有两个字符串,即
String test1 = "If you want to succeed then work hard.Best of luck" .
String test2 = "If you want to succeed then work hard.Best of Yuck" .
基本上,这些是我在这里引用的虚拟测试字符串。实际上,我有超过 10000 行字符的字符串。
我想检查这些字符串是否相等。我知道 .equals 会比较两个字符串值并返回一个 boolean 值。但我想检查它不匹配哪个字符。
我尝试过:-
for(int i=0 ; i<=test1.length();i++){
for(int j=0 ; j<=test2.length();j++){
if (test1.charAt(i)==test2.charAt(j)){
System.out.println("Matched "+test1.charAt(i)+" "+test2.charAt(j));
}
else{
System.out.println("Not Matched "+test1.charAt(i)+" "+test2.charAt(j));
}
}
}
但是此代码将检查 test1 字符串的每个字符与 test2 的每个字符并打印。 我想检查 test1 的每个字符和 test2 的每个字符。
最佳答案
您在StringUtils中有difference
方法 Apache 库。它将返回字符串中不同的部分。
此外,您还有一些更有用的方法(即 indexOfDifference
它将返回差异开始的索引或 getLevenshteinDistance
这将返回需要应用于一个的更改数量字符串,因此它等于其他),因此通过组合这些,您可能会得到您想要的。
更复杂用法的其他选项可以是外部库(可以帮助您的是 java-dif-utils )。
关于java - 如何检查一个字符串的字符与另一个字符串的其他字符不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316285/