leetcode

leetcode831.隐藏个人信息

2019-04-02  本文已影响0人  HannahLi_9f1c
 public String maskPII(String S) {
        if(S == null || S.length()==0){
            return "";
        }
        String result = null;
       // 开头字母是字母说明是邮箱
        if(S.charAt(0)>='a' && S.charAt(0)<='z' ||(S.charAt(0)>='A' && S.charAt(0)<='Z')){
           //用StringBuilder连接,效率更高
            StringBuilder str = new StringBuilder();
            String tmp[] = S.split("@");
           //大写则需要转换成小写
            if(tmp[0].charAt(0) >= 'a' && tmp[0].charAt(0) <='z'){
                str.append(tmp[0].charAt(0));
            } else{
                char ch = (char)(tmp[0].charAt(0)+32);
                str.append(ch);
            }
            // 中间五个*
            for(int i=0;i<5;i++){
                str.append('*');
            }
          // 大写转换小写 
            if(tmp[0].charAt(tmp[0].length()-1) >= 'a' && tmp[0].charAt(tmp[0].length()-1) <='z'){
                str.append(tmp[0].charAt(tmp[0].length()-1));
            } else{
                char ch = (char)(tmp[0].charAt(tmp[0].length()-1)+32);
                str.append(ch);
            }
            str.append('@');
             for(int i=0;i<tmp[1].length();i++){
                 if(tmp[1].charAt(i)>='A' && tmp[1].charAt(i)<='Z'){
                     char ch=(char)(tmp[1].charAt(i)+32);
                     str.append(ch);
                 } else{
                     str.append(tmp[1].charAt(i));
                 }
                 
             }
            result = str.toString();
            
        } else{
            StringBuilder tmp = new StringBuilder();
             // 先把无用字符过滤掉
            for(int i=0;i<S.length();i++){
                if(S.charAt(i)>='0'&&S.charAt(i)<='9'){
                    tmp.append(S.charAt(i));
                }
            }
            StringBuilder str = new StringBuilder();
             int h=0;
            // 国际电话
            if(tmp.length()>10){
                str.append('+');
               
                for(h=0;h<tmp.length()-10;h++){
                    str.append('*');
                }
                str.append('-');               
            }
            int j=h;
            for(j=h;j<h+3;j++){
                str.append('*');
            }
            str.append('-');
            int m=j;
            for(m=j;m<j+3;m++){
                str.append('*');
            }
            str.append('-');
            for(;m<tmp.length();m++){
                str.append(tmp.charAt(m));
            }
            result = str.toString();
        }
        return result;
        
        
    }
上一篇 下一篇

猜你喜欢

热点阅读