
publicstaticStringdesensitizeIdCard(StringidCard){if(idCardnull||idCard.isEmpty()){returnidCard;}// 去除空格idCardidCard.trim();intlengthidCard.length();// 长度小于等于 10 位时直接返回原值实际身份证号至少 15 位if(length10){returnidCard;}StringprefixidCard.substring(0,6);StringsuffixidCard.substring(length-4);intstarCountlength-10;returnprefixrepeatChar(*,starCount)suffix;returnprefix*.repeat(starCount)suffix;}在 Android 开发中上述代码出现如下错误信息Cannot resolve method repeat in String问题原因String 的 repeat 是 Java 11 才引入的方法项目使用的是 Java 8 或更低版本处理策略提供兼容 Java 8 的实现privatestaticStringrepeatChar(charc,intcount){if(count0){return;}StringBuildersbnewStringBuilder(count);for(inti0;icount;i){sb.append(c);}returnsb.toString();}publicstaticStringdesensitizeIdCard(StringidCard){if(idCardnull||idCard.isEmpty()){returnidCard;}// 去除空格idCardidCard.trim();intlengthidCard.length();// 长度小于等于 10 位时直接返回原值实际身份证号至少 15 位if(length10){returnidCard;}StringprefixidCard.substring(0,6);StringsuffixidCard.substring(length-4);intstarCountlength-10;returnprefixrepeatChar(*,starCount)suffix;}