/**
* @author bsh
* @email 375619962@qq.com
* Date 2019/11/29
*
*/
public class BSHStaging {
//手机号,身份证,银行卡,姓名,地址
public static String hide01(String str,int x,int y,String star) {
return replace01(str,x,y,star) ;
}
//邮箱
public static String hide02(String str,int x,String star) {
return replace02(str,x,star) ;
}
//姓名
public static String hide03(String str,int x,String star) {
return replace03(str,x,star) ;
}
/**
*
* 姓名 姓名两(三)个字隐藏前一个字(后两个字),四个字隐藏前(后)两个字
*
* @param str 原字符串
* @param z 两种模式,1影藏姓,2是隐藏名
* @param star 隐藏字符,例: ***
* @param
* @return
*/
public static String replace03(String str,int z,String star) {
int y = 0;
String Newstr = "";
if(1 == z ){
if(str.length() <= 1 ){
return str;
}else if( 2 == str.length() ){
y = 1 ;
}else if( 3 == str.length()){
y = 1;
}else if( 4 ==str.length()){
y = 2;
}
if("".equals(star) || star == null){
star = "*";
}
String strXXX = str.trim().substring(0,y);
for (int i = 0, lengths = strXXX.length(); i < lengths; i++) {
Newstr += star;
}
Newstr = str.replaceFirst(strXXX , Newstr); //隐藏后新的字符串
}else if(2 == z){
if(str.length() <= 1 ){
return str;
}else if( 2 == str.length() ){
y = 1 ;
}else if( 3 == str.length()){
y = 2;
}else if( 4 ==str.length()){
y = 2;
}
String strXXX = str.trim().substring(str.length() - y,str.length());
for (int i = 0, lengths = strXXX.length(); i < lengths; i++) {
Newstr += star;
}
Newstr = str.replaceFirst(strXXX , Newstr); //隐藏后新的字符串
}
return Newstr;
}
/**
*
* 邮箱所需隐藏的字符串,保留前x位和@后的部分(包括@)
*
* @param str 原字符串
* @param x 保留前几位
* @param star 隐藏字符,例: * X
* @param
* @return
*/
public static String replace02(String str,int x,String star) {
if(str.length() <= 1 ){
return str;
}
if("".equals(star) || star == null){
star = "*";
}
String xxx = "";
String aaa = "";
String[] strone=str.split("@");
for(int i=0,len=strone.length;i<len;i++){
aaa = strone[0].toString();
}
String strXXX = str.trim().substring(4,aaa.length());
for (int i = 0, lengths = strXXX.length(); i < lengths; i++) {
xxx += star;
}
String Newstr = str.replaceFirst(strXXX , xxx); //隐藏后@前部分
return Newstr;
}
/**
*
* 所需隐藏的字符串
*
* @param str 原字符串
* @param x 保留前几位
* @param y 保留后几位
* @param star 隐藏字符,例: ***
* @param
* @return
*/
public static String replace01(String str,int x,int y,String star) {
if(str.length() <= 1 ){
return str;
}
if("".equals(star) || star == null){
star = "*";
}
String Newstr = "";
String strXXX = str.trim().substring(x,str.length()-y);
for (int i = 0, lengths = strXXX.length(); i < lengths; i++) {
Newstr += star;
}
Newstr = str.replaceFirst(strXXX , Newstr); //隐藏后新的字符串
return Newstr;
}
}