String s = "Elephant";
String srep = (s.replaceAll(s.substring(4,6), "_" ));
System.out.println(srep);
所以我的代码输出 Elep_nt
但我希望它用下划线替换该子字符串的每个单独索引,以便输出 Elep__nt
有没有办法在一行中做到这一点?我必须使用循环吗?
最佳答案
你的问题是你一次匹配 "ha"
,因此它只被一个字符替换。 (另请注意,如果您有 "Elephantha"
,最后的 "ha"
也会被替换。)
你可以使用 lookbehind确定要替换的每个单个字符。因此,要“将位置 4 到 5 的字符替换”,您可以使用:
String s = "Elephant";
String srep = s.replaceAll("(?<=^.{4,5}).", "_");
System.out.println(srep);
输出:
Elep__nt
关于java - 如何替换子串的每个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18747403/