在java中使用正则表达式将字符串替换为另一个字符串
在Java中,我必须使用RegEx和函数replace将一个字符串值包装成另一个字符串值 示例1:什么内容将“在java中使用正则表达式将字符串替换为另一个字符串,java,regex,Java,Regex,在Java中,我必须使用RegEx和函数replace将一个字符串值包装成另一个字符串值 示例1:什么内容将“123C5”(5个字符)替换为“***” 示例2:什么内容将“12354CF5214”(11个字符)替换为“*******5214”? 仅替换前7个字符 目前,我正在使用此功能,但我需要对其进行优化: public String getMaskedValue(String value) { String maskedRes = ""; if (value!=null
123C5
”(5个字符)替换为“***
”
示例2:什么内容将“12354CF5214
”(11个字符)替换为“*******5214
”?
仅替换前7个字符
目前,我正在使用此功能,但我需要对其进行优化:
public String getMaskedValue(String value) {
String maskedRes = "";
if (value!=null && !value.isEmpty()) {
maskedRes = value.trim();
if (maskedRes.length() <= 5) {
return maskedRes.replaceAll(value, "$1*");
} else if (value.length() == 11) {
return maskedRes.replace(value.substring(0, 7), "$1*");
}
}
return maskedRes;
}
公共字符串getMaskedValue(字符串值){
字符串maskedRes=“”;
if(value!=null&&!value.isEmpty()){
maskedRes=value.trim();
如果(maskedRes.length(),您可以使用以下解决方案
public static String getMaskedValue(String value) {
return value.replaceAll("(?<=^.{0,6}).", "*");
}
公共静态字符串getMaskedValue(字符串值){
return value.replaceAll(“(?为什么要使用regexp?用子字符串替换文本并在“*******”前面加上前缀)。此外,您还应该解释为什么需要对其进行优化,以及以何种方式(执行速度?代码行数?)进行优化,因为当前版本没有那么糟糕。