如何从给定起始索引的字符串中替换特定字符

时间:2019-02-22 10:34:31

标签: java

我得到一个字符串= "SUBTOTAL(9,L7:L17)"

我想在给定的字符串中用 2 替换所有 L ,但不应更改 SUBTOTAL 中的 L 或将所有 L 替换为括号内的 2

我已经尝试使用Java方法中的replaceAll(),但是将所有 L 替换为 2 结果"SUBTOTA2(9,27:217)"是错误的

我想要这样 结果将类似于:"SUBTOTAL(9,27:217)"

1 个答案:

答案 0 :(得分:2)

您可以根据第一次出现的(将字符串分成两个子字符串,然后在第二部分替换字符并重新组合结果:

String string = "SUBTOTAL(9,L7:L17)";
int replaceStartIndex = string.indexOf('(');

System.out.println(string.substring(0, replaceStartIndex) 
  + string.substring(replaceStartIndex).replaceAll("L", "2"));

输出SUBTOTAL(9,27:217)