gpt4 book ai didi

java替换字符串特定索引中的子字符串

转载 作者:行者123 更新时间:2023-11-29 03:41:12 25 4
gpt4 key购买 nike

如何使用“将最后一个子字符串 10 替换为 01”算法将字符串 10100 替换为 10010。我试过了

s=s.replace(s.substring(a,a+2), "01");

但这会返回 01010,同时替换 “10” 的第一个和第二个子字符串。"a"代表 s.lastindexOf("10");

最佳答案

这是您可以使用的一个简单且可扩展的函数。首先是它的使用/输出,然后是它的代码。

String original  = "10100";
String toFind = "10";
String toReplace = "01";
int ocurrence = 2;
String replaced = replaceNthOcurrence(original, toFind, toReplace, ocurrence);
System.out.println(replaced); // Output: "10010"

original = "This and This and This";
toFind = "This";
toReplace = "That";
ocurrence = 3;
replaced = replaceNthOcurrence(original, toFind, toReplace, ocurrence);
System.out.println(replaced); // Output: "This and This and That"

函数代码:

public static String replaceNthOcurrence(String str, String toFind, String toReplace, int ocurrence) {
Pattern p = Pattern.compile(Pattern.quote(toFind));
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer(str);
int i = 0;
while (m.find()) {
if (++i == ocurrence) { sb.replace(m.start(), m.end(), toReplace); break; }
}
return sb.toString();
}

关于java替换字符串特定索引中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com