Java输入手机号和姓名中间*号代替

Java输入手机号和姓名中间*号代替(包含正则表达式)

方法一:

package Strin;
//判断手机号和用户名
import java.util.Arrays;
import java.util.Scanner;

public class Demo6 {
    
    
	
	public static void main(String[] args) {
    
    
		Scanner sd=new Scanner(System.in);//Scanner方法键盘输入手机号
		System.out.println("请输入手机号码");
		String sc=sd.nextLine();//接收类型为nextLine(),字符串型
		Scanner na=new Scanner(System.in);//Scanner方法键盘输入姓名
		System.out.println("请输入姓名");
		String name=na.nextLine();//接收类型为nextLine(),字符串型
		//调用str方法。sc和name参数为之前输入的参数。
		str(sc, name);
	}
	
	//定义方法,明确是否有返回值,有返回值去掉void写返回值的类型,没有的话写void。(我写的没有)
	//定义接收的类型形参,均为String类型
	public static void str(String sc,String name) {
    
    
		//matches类型返回的为boolean类型的参数。判断sc接收的字符串中是否是11位数字。赋值给sb
		boolean sb=sc.matches("1[0-9]\\d{9}");
		//matches类型返回的为boolean类型的参数。判断sd接收的字符串中是否是中文字符。赋值给sd
		boolean sd=name.matches("[\u4E00-\u9FA5]+");
		//if进行判断sb
		if (sb!=true) {
    
    
			//判断sb不等于真,就输出下列
			System.out.println("手机号输入错误,请重新输入");
			//判断sd不等于真,就输出下列
		}else if(sd!=true){
    
    
			System.out.println("姓名输入错误,请输入准确姓名(不能包含英文、数字、字符等)");
			//如果两者都为真,程序执行下列
		}else {
    
    
			//将最开始接收的sc和name字符串转换为char字符数组
			char sb2[] = sc.toCharArray(); 
			char sb3[] = name.toCharArray();
			//进行for循环遍历char字符数组sb2
			for (int i = 0; i < sb2.length; i++) {
    
    
				//下列进行if判断i的值如果等于下列四个数组位置则输出“*”符号代替。不等于下列数组位置就输出原字符
					  if (i==3) {
    
    
					System.out.print("*");
				}else if(i==4){
    
    
					System.out.print("*");
				}else if(i==5){
    
    
					System.out.print("*");
				}else if(i==6){
    
    
					System.out.print("*");
				}else {
    
    
				System.out.print(sb2[i]);
					}
			}
			
			System.out.println();//此为空输出换行
			
			//for循环遍历char字符数组sb3
			for (int j = 0; j < sb3.length; j++) {
    
    
				//if进行判断如果j==0那么就输出原字符,不符合就输出“*”符号。
				  if (j==0) {
    
    
					System.out.print(sb3[j]);
				}else{
    
    
					System.out.print("*");
				}
			}	
				
		}
		
		
		
	}

}

方法二:调用自己写吧

package regularexpression;
//需要调用方法进行执行
public class Rex {
    
    
	//确定输入的名字或者手机号,开始位置,结束位置,更改后的字符串
	public  String getMaxkstr(String str,int start,int end, String mask) {
    
    
		//将字符串str字符串转换为StringBuilder类型
		StringBuilder s= new StringBuilder(str);
		//循环遍历s ,i=start,i<end 为设置的int类型长度
		for (int i = start; i < end; i++) {
    
    
			//将设置的s进行字符替换replace(开始位置,结束位置,替换的字符);  结束位置为设置的长度-1,例如设置结束位置为10,实则到9.
			s.replace(i, i+1, mask);
		}
		//s变成字符串进行返回
		return s.toString();
	}
	
	
	
	public  String getMaskStrName(String name) {
    
    
		//调用 getMaxstr方法,接收name进行返回调用
		return getMaxkstr(name,1,2,"*");
	}
	
	
	
	
	public  String getMaskStrPhone(String phone) {
    
    
		//调用 getMaxstr方法,接收phone进行返回调用
		return getMaxkstr(phone,3,7,"*");
	}
	 public static void main(String[] gars) {
    
    
		 
	 }
}

猜你喜欢

转载自blog.csdn.net/qq_45844443/article/details/108779750
今日推荐