匹配两个字符串并在java中将非匹配字符替换为+

时间:2014-05-21 17:39:21

标签: java

修改第一个字符串,使所有字符都被加号(+)替换,但第二个字符串中可用的字符除外,如果第一个字符串的一个或多个字符出现在第二个字符串中,它们将不会被+替换(忽略大小写)

String input1 =“New York”; String input2 =“New Jersy”;

String out =“New Y + r +”;

我试过这个:

String input1 ="New York";
String input2 ="New Jersy";
String str[] = input1.split([New Jersy]);

for(String s:str) {
    if(s.equals("")) // same pattern else // + should be printed }

1 个答案:

答案 0 :(得分:0)

您的解决方案有效,但稍作修改即可。如果您不想考虑区分大小写,请删除(?i)部分。

public class StringReplacer {

    public static void main(String[] args) {
        String str1 = "New York";
        String str2 = "New Jersy";

        for(String s : str1.split("(?i)[" + str2 +"]")){
            if(s.trim().length() > 0){
                str1 = str1.replace(s, "+");
            }
        }

        System.out.println(str1); // Prints New Y+r+
    }

}