java实现字符串部分字符替换为特殊字符

条件

输入一个字符串要求如下操作
1:如果字符串长度足够,要去保留前后五个字符,其他字符替换为*****
2:如果长度不够,保留的字符有所减少,其他字符替换为**

实现

1、使用replaceAll方法

public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入字符串:");
	String aString=scanner.next();
	if (aString.length()>10) {
		int count=aString.length()-10;
		aString=aString.replaceAll("(\\d{5})\\d{"+count+"}(\\d{5})", "$1*****$2");
	}else{
		int start=(int) Math.ceil((aString.length()-2)/2.0);
		int end=(int) Math.floor((aString.length()-2)/2.0);
		aString=aString.replaceAll("(\\d{"+start+"})\\d{2}(\\d{"+end+"})","$1**$2");
	}
	System.out.println(aString);
}

2、使用substring进行处理

public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入字符串:");
	String aString=scanner.next();
	if (aString.length()>10) {
		int count=aString.length()-10;
		aString= aString.substring(0,5)+"*****"+aString.substring(aString.length()-5);
	}else{
		int start=(int) Math.ceil((aString.length()-2)/2.0);
		int end=(int) Math.floor((aString.length()-2)/2.0);
		aString= aString.substring(0,start)+"**"+aString.substring(aString.length()-end);
	}
	System.out.println(aString);
}

补充:
//对手机号的处理
substring(0,aString.length()-aString.substring(3).length())+"****"+aString.substring(7);

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页