You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Kotlin 如何判断字符串为无空字符作弊的真正空值

关于「真正空」字符串校验的实现方案

内置函数的局限性

Android SDK 提供的 TextUtils.isEmpty() 仅能判断两种情况:字符串为 null,或者字符串长度为0。对于包含零宽空格、零宽连接符、全角空格、换行符、制表符等不可见空白字符的字符串,这个方法会直接返回false,完全无法覆盖你要拦截作弊空字符的需求,没有可以直接满足需求的内置校验函数。

手动校验实现逻辑

你可以自行实现校验工具方法,覆盖所有不可见空白字符场景,示例代码如下:

Kotlin 版本

fun isTrulyEmpty(str: CharSequence?): Boolean {
    if (str.isNullOrEmpty()) return true
    // 遍历所有字符,只要存在任意可见的非空白字符,就不是真正空
    for (char in str) {
        if (!Character.isWhitespace(char) 
            && char != '\u200B' // 零宽空格
            && char != '\u200C' // 零宽非连接符
            && char != '\u200D' // 零宽连接符
            && char != '\uFEFF' // 零宽无间断空格
            && char != '\u00A0' // 非间断空格
        ) {
            return false
        }
    }
    return true
}

Java 版本

public static boolean isTrulyEmpty(CharSequence str) {
    if (str == null || str.length() == 0) return true;
    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if (!Character.isWhitespace(c)
                && c != '\u200B'
                && c != '\u200C'
                && c != '\u200D'
                && c != '\uFEFF'
                && c != '\u00A0'
        ) {
            return false;
        }
    }
    return true;
}

你可以根据业务需要,往判断条件里新增其他需要拦截的特殊空白字符编码即可。

内容的提问来源于stack exchange,提问作者omoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:39:03