gpt4 book ai didi

Java 用确切的字符数替换字符串中的子字符串

转载 作者:行者123 更新时间:2023-12-02 03:58:45 25 4
gpt4 key购买 nike

我的字符串是“test”“测试”有 4 个字符我想用“****”替换“测试”所以我得到“****

我的代码

System.out.println("_test_");
System.out.println("_test_".replaceAll("test", "*"));

但是它用 1 * 替换了 test。

最佳答案

如果单词 test 只是一个示例,您可以使用 Matcher.appendReplacement(有关此技术的更多详细信息,请参阅 How to appendReplacement on a Matcher group instead of the whole pattern?):

String fileText = "_test_";
String pattern = "test";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(fileText);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, repeat("*", m.group(0).length()));
}
m.appendTail(sb); // append the rest of the contents
System.out.println(sb);

还有 repeat 函数(借自 Simple way to repeat a String in java ,请参阅那里的其他选项)所以帖子是:

public static String repeat(String s, int n) {
if(s == null) {
return null;
}
final StringBuilder sb = new StringBuilder(s.length() * n);
for(int i = 0; i < n; i++) {
sb.append(s);
}
return sb.toString();
}

参见IDEONE demo

关于Java 用确切的字符数替换字符串中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35140216/

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