Android 开发问题:Cannot resolve method ‘repeat‘ in ‘String‘

java 复制代码
public static String desensitizeIdCard(String idCard) {
    if (idCard == null || idCard.isEmpty()) {
        return idCard;
    }

    // 去除空格
    idCard = idCard.trim();
    int length = idCard.length();

    // 长度小于等于 10 位时,直接返回原值,实际身份证号至少 15 位
    if (length <= 10) {
        return idCard;
    }

    String prefix = idCard.substring(0, 6);
    String suffix = idCard.substring(length - 4);
    int starCount = length - 10;

    return prefix + repeatChar('*', starCount) + suffix;

    return prefix + "*".repeat(starCount) + suffix;
}
  • 在 Android 开发中,上述代码出现如下错误信息

    Cannot resolve method 'repeat' in 'String'

问题原因
  • String 的 repeat 是 Java 11 才引入的方法,项目使用的是 Java 8 或更低版本
处理策略
  • 提供兼容 Java 8 的实现
java 复制代码
private static String repeatChar(char c, int count) {
    if (count <= 0) {
        return "";
    }
    StringBuilder sb = new StringBuilder(count);
    for (int i = 0; i < count; i++) {
        sb.append(c);
    }
    return sb.toString();
}

public static String desensitizeIdCard(String idCard) {
    if (idCard == null || idCard.isEmpty()) {
        return idCard;
    }

    // 去除空格
    idCard = idCard.trim();
    int length = idCard.length();

    // 长度小于等于 10 位时,直接返回原值,实际身份证号至少 15 位
    if (length <= 10) {
        return idCard;
    }

    String prefix = idCard.substring(0, 6);
    String suffix = idCard.substring(length - 4);
    int starCount = length - 10;

    return prefix + repeatChar('*', starCount) + suffix;
}
相关推荐
苏生Susheng17 分钟前
【软件实施】Windows 服务器运维实战
java·运维·服务器·windows·spring boot·javaweb·实施
Java小白笔记23 分钟前
Java 实现 ZIP 压缩包生成方案
java·开发语言·网络·7-zip
AFinalStone44 分钟前
Android 7系统无障碍服务(五)AccessibilityNodeInfo 的构建与查询
android·无障碍服务
霸道流氓气质1 小时前
Spring AI 多模态开发指南:图片理解与语音合成
java·人工智能·spring
en.en..1 小时前
Linux mmap 内存映射深度解析:基于帧缓冲 /dev/fb0
java·服务器·前端
洋不写bug1 小时前
链表补充练习,双链表的模拟实现
java·数据结构·链表·双链表·底层实现
后台模板学习1 小时前
用 IM 即时聊天项目一次讲清消息去重算法的踩坑与解决方案
java·数据库·spring
秋名RG1 小时前
2026/6/15 系统故障复盘与整改方案
java·架构
今天要早睡_1 小时前
C++ 核心语法速过:命名空间、引用、函数重载与 nullptr 深度解析
android·java·c++
南讯股份Nascent1 小时前
2026年CRM技术选型观察:当“数据打通“成为第一需求,电商CRM的架构价值在哪里
java·大数据·用户运营