【问题标题】:How to check a String's character not matching with other character of another String如何检查字符串的字符与另一个字符串的其他字符不匹配
【发布时间】:2015-03-28 10:54:01
【问题描述】:

我有两个字符串,即

   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 将比较两个字符串值都返回一个布尔值。但我想检查它不匹配的字符。

我试过了:-

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 的每个字符。

【问题讨论】:

  • @mins 请阅读小鸟问的问题。他不能用equals方法解决它
  • @Naz:我的错!感谢并向小鸟道歉。这有帮助吗(作为初学者,它必须根据您的需要进行定制):Comparing two strings in java character by character.
  • @mins 这是一个很棒的资源,可以通过不同的方式来解决上述问题。我建议小鸟看一下

标签: java


【解决方案1】:

StringUtils apache 库中有 difference 方法。它将返回不同的字符串部分。

你还有几个更有用的方法(即indexOfDifference,它将返回差异开始的索引或getLevenshteinDistance,它将返回需要应用于一个字符串的更改数量,因此它等于另一个)所以结合这些你可能会得到你想要的。

更复杂用法的其他选项可以是外部库(可以帮助您的是java-dif-utils)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多