如何将 Java 字符串中的所有字符替换为星号
我想用字符替换Java字符串中的所有字符。因此,它是什么字符并不重要,应该用.*
*
我知道互联网上有很多例子,但没有一个可以取代每个角色的例子,我已经尝试过自己,但没有成功。
我想用字符替换Java字符串中的所有字符。因此,它是什么字符并不重要,应该用.*
*
我知道互联网上有很多例子,但没有一个可以取代每个角色的例子,我已经尝试过自己,但没有成功。
str = "*".repeat(str.length());
注意:这会将换行符替换为 。如果要保留,请参阅下面的解决方案。\n
*
\n
str = str.replaceAll(".", "*");
这将保留换行符。
要在 Java 10 及更早版本中将换行符替换为换行符,您可以使用:*
str = str.replaceAll("(?s).", "*");
不匹配任何东西,但激活DOTALL
模式,这也使匹配。(?s)
.
\n
根本不使用正则表达式,计算字符串长度,并返回相应数量的星星。
普通Java< 8版本:
int len = str.length();
StringBuilder sb = new StringBuilder(len);
for(int i = =; i < len; i++){
sb.append('*');
}
return sb.toString();
纯 Java >= 8 版本:
int len = str.length();
return IntStream.range(0, n).mapToObj(i -> "*").collect(Collectors.joining());
使用番石榴:
return Strings.repeat("*", str.length());
// OR
return CharMatcher.ANY.replaceFrom(str, '*');
使用共享资源/语言:
return StringUtils.repeat("*", str.length());