Java String正在被区分大小写取代

Kut*_*tty 2 java string

我有一个字符串,我必须用子字符串替换它.例如,"服务"就是这个词.我有一个子串作为"servi".现在,我需要检查"服务"是否有"服务".如果是,那么我需要用"服务"替换它.当我尝试更换时,它会显示为"服务".但预期的输出是"服务"你能帮助我解决这个问题吗?请在下面找到代码.

String stringValue = "Servicing";
if (stringValue != null && stringValue != "") {
    i = stringValue.toLowerCase().indexOf("servi", i+1);
    if(i>=0){
        newData = stringValue .replaceAll("(?i)"+"servi", "<mark>"+"servi"+"</mark>");
        System.out.println(newData); // Case sensitive should remain same as String. Not as substring.
        i = -1;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 6

使用

String stringValue = "Servicing";
if (stringValue != null && !stringValue.isEmpty()) {
     String newData = stringValue.replaceAll("(?i)servi", "<mark>$0</mark>");
     System.out.println(newData);
}
Run Code Online (Sandbox Code Playgroud)

请参阅Java演示

细节:

  • (?i) - 不区分大小写的内联修饰符
  • servi - 文字字符序列
  • $0 - 对整个匹配值的反向引用.它确保您插入servi匹配的案例(无需像在原始代码中那样在替换内部进行硬编码).