需求:把一个字符串中间的字符都替换成星号,只保留头和尾的字符,如下,
String name="abcd";
String regex = "";//需要完成的正则表达式
System.out.println(name.replaceAll(regex, "*"));//想得到的结果是a**d
------解决思路----------------------
直接字符串截取不得了?
第一个字符能取到吧?最后个字符能取到吧?
字符串长度能取到吧?
拼吧~
------解决思路----------------------
直接取第一个和最后一个字符中间的全换掉
------解决思路----------------------
楼上的方法可以, 正则的话这么写
public static void main(String[] args) throws Exception {
String str = "abcdefg";
//{}里面的数字可以用来指定前后缀的长度
String regex = "(\\w{1})(.*)(\\w{1})";
Matcher m = Pattern.compile(regex).matcher(str);
if (m.find()) {
String rep = m.group(2);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < rep.length(); i++) {
sb.append("*");
}
System.out.println(str.replaceAll(rep, sb.toString()));
}
}