我正在尝试实现一个逻辑,我需要将字符串中的特定sub-string(no of characters)
替换为从给定的起始索引到结束索引。
例如:
假设有一个名为"elephant"
的字符串,我将起始索引作为2
,结束索引作为5
,我需要用另一个给定的字符串{{替换这些索引之间的字符1}}。因此,结果字符串应为"tiger"
。
同样,假设有一个名为"eltigernt"
的字符串,我将起始索引设为"elephant elephant tiger"
,结束索引为2
,我需要用另一个给定字符串替换这些索引之间的字符5
。因此,结果字符串应为"tiger"
。
答案 0 :(得分:0)
我认为使用默认的String
方法是最好的方法:
String s = "elephant";
String substitue = "tiger";
System.out.println(s.substring(0, 2) + substitute + s.substring(6));
请注意,您必须将上限增加1.此外,所有索引都必须由变量替换。
答案 1 :(得分:0)
你可以使用StringBuilder,也可以只使用CharArray进行简单的for循环。
StringBuilder版本:
public static String replace(int start, int end, String ori, String rep){
StringBuilder sb = new StringBuilder();
sb.append(ori,0,start)
.append(rep)
.append(ori,end+1,ori.length());
return sb.toString();
}
希望这会有所帮助:)
注意:虽然您可以使用简单的字符串" +",但我建议使用StringBuilder以获得更好的性能,在这种情况下。
答案 2 :(得分:0)
只需使用StringBuilder
方法replace
,您就可以定义要替换的边界和特定值:
String s = "FooBar";
StringBuilder sb = new StringBuilder(s);
sb.replace(1,3,"##");
System.out.println(sb.toString());
˚F##巴
文档:
public StringBuilder replace(int start, int end, String str)
使用指定String中的字符替换此序列的子字符串中的字符。子字符串从指定的开始处开始并延伸到索引结束处的字符 - 1或如果不存在此类字符则延伸到序列的结尾。首先删除子字符串中的字符,然后在start处插入指定的String。 (如果需要,将延长此序列以容纳指定的字符串。)
Parameters:
start - The beginning index, inclusive.
end - The ending index, exclusive.
str - String that will replace previous contents.