【问题标题】:Android text entry validation with localization带有本地化的 Android 文本输入验证
【发布时间】:2014-12-03 19:45:56
【问题描述】:

我的 Android 应用程序中有一些文本字段需要仅限于字母(可能还有一些枚举的基本符号集,例如“._-,!”等等)。我的第一反应是使用 Java 的 isLetter 函数。但我不知道这是否对本地化友好 - 我的应用程序需要本地化为日语等其他语言,并且 Android 文档没有给出关于它如何工作的提示(isLetter 是否取决于当前语言,或者全部安装语言,或者只是一些 Unicode 字符的白名单)。我知道我不能告诉 Android 键盘不允许输入表情符号,所以我可以在输入文本字符串后检查它,如果没问题就接受它,如果表情符号字符(或其他字符)则拒绝它并返回错误被检测到)。

在 Android 中是否有一种普遍接受的方法?

【问题讨论】:

    标签: java android localization


    【解决方案1】:

    isLetter 应该做你需要的。这是一个例子:

    public boolean isAlpha(String name) {
        char[] chars = name.toCharArray();
    
        for (char c : chars) {
            if(!Character.isLetter(c)) {
                return false;
            }
        }
    
        return true;
    }
    

    另外,日文字符仍然是字符,所以它们仍然可以工作。这样做的方法与编码有关。

    字符串只是一个字符序列(字符);一个字符串本身 根本没有编码。为了它的价值,替换中的字符 上面有信鸽。一样。信鸽没有 编码。字符也没有。

    来自Check if String contains only letters

    UTF-8 Encoding ; Only some Japanese characters are not getting converted

    【讨论】:

    • 在做了一些进一步的测试之后,看起来你是对的 - isLetter 确实接受日语和其他语言字符。我希望文档在这一点上更清楚地说明它接受的内容,但它现在可以工作。
    猜你喜欢
    • 2010-10-31
    • 2010-12-27
    • 2023-03-18
    • 2018-06-09
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多