如何在java中读取字符串中的特殊字符

时间:2015-12-29 08:47:00

标签: java string special-characters charat

我给了一个String&我需要找出它是否包含任何特殊字符?我尝试使用charAt()和ASCII值。但它没有工作。有人请帮忙。谢谢。

for(int i=0;i<s.length();i++)
{
    char c=s.charAt(i);
    if(65<=c<=90)
    {
        System.out.println("Valid");
    }
    else if(97<=c<=122)
    {
        System.out.println("Invalid as it contains lower case letter");
        break;
    }
    else if(48<=c<=57)
    {
        System.out.println("Invalid as it contains numbers");
        break;
    }
    else
        System.out.println("Invalid as it contains special characters");
}

4 个答案:

答案 0 :(得分:1)

这样的事情会起作用:

public static void main(String[] args) {
    String s = "asda®††∆˚∆asd121";
    System.out.println(s.replaceAll("[a-zA-Z0-9]", ""));
}

O / P:

®††∆˚∆

如果替换后的大小为0,则没有特殊字符。您可以使用您认为的特殊更新正则表达式。 :)

答案 1 :(得分:1)

你遇到的问题是这样的:65<=c<=90在java中不起作用。你不能连锁比较!

你必须写下这样的东西:

if (65 <= c && c <= 90)

或者为了提高可读性,我建议你做这样的事情:

if ('A' <= c && c <= 'Z')

答案 2 :(得分:1)

在Java中65<=c<=90不是有效的比较。

你需要写下这样的条件:

if (65<=c && c<=90) {
    ...
} else if (97<=c && c<=122) {
    ...
}

答案 3 :(得分:1)

您可以使用StringUtils:isAllUpperCase

或者尝试这样的事情,以防你想检查每个角色。

public static boolean isUpperCase(String s)
    {
        for (int i=0; i<s.length(); i++)
        {
            if (!Character.isUpperCase(s.charAt(i)))
            {
                return false;
            }
        }
        return true;

}