java字符串replaceall第一个字符后,某些字符串为小写

时间:2017-11-24 04:41:02

标签: java str-replace

我要求将字符串中的所有字符替换为小写,如果后面跟着一些字符串,如“is”。

例如:

String a = "name=xyz,isSalaried=Y,address=abc,isManager=N,salary=1000";

它应该转换为

"name=xyz,salaried=Y,address=abc,manager=N,salary=1000"

我不是很擅长正则表达式,但我认为可以使用它来实现所需的输出。 如果有人可以帮助我,那就太好了。

2 个答案:

答案 0 :(得分:0)

您的解决方案需要基本了解java中的String和String方法。 这是一个有效的例子。虽然,它可能不是最有效的。 注意: - 您要求注册解决方案。但这是使用纯粹的字符串方法

public class CheckString{
    public static void main(String[] ar){
        String s = "name=xyz,isSalaried=Y,address=abc,isManager=N,salary=1000";
        String[] arr = s.split(",");
        String ans = "";
        int i = 0;
        for(String text : arr){
            int index = text.indexOf("=");
            String before = text.substring(0,index).replace("is","").toLowerCase();
            String after = text.substring(index);
            if(i!=(arr.length-1)){
                ans += before + after + ",";
                i++;
            }
            else{
                ans += before + after;  
            }
        }
        System.out.println(ans);
    }
}

答案 1 :(得分:0)

试试这个。 首先匹配字符串并在循环中替换

    String a = "name=xyz,isSalaried=Y,address=abc,isManager=N,salary=1000";

    Matcher matcher = Pattern.compile("is(.*?)=").matcher(a);//.matcher(a).replaceAll(m -> m.group(1).toLowerCase());

    while (matcher.find()) {
        String matchedString = matcher.group(1);

        a = a.replace("is"+matchedString,matchedString.toLowerCase());
    }
    System.out.printf(a);