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) {
}
}