我想用字符替换Java String中的所有*字符.所以它应该是什么特性并不重要,它应该被替换为*.
我知道互联网上有大量的例子,但没有一个可以取代每一个角色而且我已经尝试过但没有成功.
aio*_*obe 58
str = "*".repeat(str.length());
Run Code Online (Sandbox Code Playgroud)
注意:这将替换换行符\n用*.如果要保留\n,请参阅下面的解决方案.
str = str.replaceAll(".", "*");
Run Code Online (Sandbox Code Playgroud)
这保留了换行符.
要*在Java 10及更早版本中替换换行符,您可以使用:
str = str.replaceAll("(?s).", "*");
Run Code Online (Sandbox Code Playgroud)
该(?s)不匹配任何东西,但激活DOTALL模式,这使得.也匹配\n.
Sea*_*oyd 17
根本不要使用正则表达式,计算字符串长度,并返回相应的星数.
Plain Java <8版本:
int len = str.length();
StringBuilder sb = new StringBuilder(len);
for(int i = =; i < len; i++){
sb.append('*');
}
return sb.toString();
Run Code Online (Sandbox Code Playgroud)
普通Java> = 8版本:
int len = str.length();
return IntStream.range(0, n).mapToObj(i -> "*").collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
使用番石榴:
return Strings.repeat("*", str.length());
// OR
return CharMatcher.ANY.replaceFrom(str, '*');
Run Code Online (Sandbox Code Playgroud)
使用Commons/Lang:
return StringUtils.repeat("*", str.length());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77319 次 |
| 最近记录: |