如何比较两个字符串并用 - 替换不匹配的字母?

时间:2017-02-18 03:31:17

标签: java string

我试图编写一个程序来比较两个字符串,选出不匹配的位,然后将它们替换为" - "

ex。)go("boo" , "foo") returns -oo

这是我到目前为止所提出的:

String go( String a, String b ) {
  String c = "";
  String q = "-";
  int al = a.length();
  for(int i = 0; i < al; i++){
     char ch = a.charAt(i);
     if(b.indexOf(a)!= -1) {
       c = c + String.valueOf(ch);
     } else {
       c = c + q;
     }
   }
 return c;
 }

2 个答案:

答案 0 :(得分:0)

使用StringBuilder快速轻松地改变字符串,然后返回this.$route.query值。您可以使用setCharAt来更改某些索引处的字符。

此代码假定toString()为先决条件。

str1.length() == str2.length()

答案 1 :(得分:0)

你可以用正则表达式做到这一点:

String str1 = "boo";
String str2 = "foo";

System.out.println(str1.replaceAll("[^"+str2+"]","-"));

     (or)

Pattern p = Pattern.compile("[^"+str1+"]");
Matcher m = p.matcher(str2);
System.out.println(m.replaceAll("-"));

输出:

-oo