美文网首页leetcode
leetcode831.隐藏个人信息

leetcode831.隐藏个人信息

作者: HannahLi_9f1c | 来源:发表于2019-04-02 22:27 被阅读0次
     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;
            
            
        }
    

    相关文章

      网友评论

        本文标题:leetcode831.隐藏个人信息

        本文链接:https://www.haomeiwen.com/subject/xkfobqtx.html