【问题标题】:isAlpha(str) is method converting Persian into Unicode characters and return trueisAlpha(str) 是将波斯语转换为 Unicode 字符并返回 true 的方法
【发布时间】:2021-07-04 15:14:14
【问题描述】:

我正在尝试仅以英语获取数据。

我尝试了不同的方法,例如:

public static boolean isAlpha(String s){
return s != null && s.matches("^[a-zA-Z]*$");
}

StringUtils 为:

public static boolean isAlpha(String str){
    return StringUtils.isAlpha(str);
    }

或者使用 Java:

public static boolean isAlpha(String s){
        if (s == null) {return false;}
 
        for (int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if (!(c >= 'A' && c <= 'Z') && !(c >= 'a' && c <= 'z')) {
                return false;
            }
        }
    return true;
    }

输出为:true
我打印了字符串,发现上述方法将波斯字符串转换为 unicode 为:&amp;#1670;&amp;#1591;&amp;#1608;&amp;#1585;&amp;#1740;

有没有办法得到只有字母和空格的字符串?

【问题讨论】:

  • 确保您了解您的输入是如何转换的,以确认这些确实是 XML 数字实体,然后寻找一种解决方案将它们转义/解码为正确的 Unicode 字符。

标签: java string apache-stringutils isalpha


【解决方案1】:

以下代码终于解决了我的问题:

public static boolean isAlpha(String str){
        boolean isValid = false;
        for (char c : str.toCharArray()) {
            if (!(c >= 'a' && c <= 'z') && !(c >= 'A' && c <= 'Z') && !(c == ' ')) {
                isValid = true;
                break;
            }
        }
    return isValid;
    }

它只接受:
a-z (!(c &gt;= 'a' &amp;&amp; c &lt;= 'z')
A-Z !(c &gt;= 'A' &amp;&amp; c &lt;= 'Z')
空格!(c == ' '))

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多