0

我正在尝试仅以英语获取数据。 我尝试了不同的方法,例如:在此处输入图像描述

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:&#1670;&#1591;&#1608;&#1585;&#1740;

反正有没有得到只有字母和空格的字符串?

4

1 回答 1

0

最后,以下代码解决了我的问题:

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;
    }

它只接受:
az(!(c >= 'a' && c <= 'z')
AZ!(c >= 'A' && c <= 'Z')
空格!(c == ' '))

谢谢

于 2021-04-09T17:31:39.057 回答