如何检查字符既不是Java中的字母也不是数字?

时间:2016-09-30 02:22:36

标签: java

所以我用Java编写了一些代码,我试图找出是否有办法编写一行代码来检查字符串中的字符既不是字母也不是数字。我知道:

Set-Cookie: auth_key=[auth_key]; Domain=.website.com; expires=Fri, 30-Sep-2016 01:41:09 GMT; httponly; Max-Age=14399; Path=/ 检查号码

Character.isDigit()检查一封信。

但我想知道java是否有可能检查这些代码中是否存在这些代码。就像字符串中的字符是“/”或“*”或甚至“_”一样。

我对Java很新,所以我不知道在这一点上去哪里。

3 个答案:

答案 0 :(得分:8)

Java provides a method for that - 您需要做的就是否定其结果:

$timeout()

答案 1 :(得分:3)

您可以将两个调用组合在一个表达式中,该表达式的计算结果为布尔值。

if (!(Character.isDigit()) && !(Character.isLetter()) ) {
    //The character is neither a digit nor a letter.
    // Do whatever
}

根据De Morgan的定律,您也可以表达如下相同的内容:

if (!((Character.isDigit()) || (Character.isLetter()) )) {
   //The statement "The character is a digit or a letter" is false.    
   // Do whatever
}

答案 2 :(得分:0)

  

检查字符串中的字符既不是字母也不是字母的代码   数字。

根据您的问题,我们了解您要传递String并检查String中的字符是否只是字母和数字,还是还有其他内容。

您可以使用正则表达式来检查String [^a-zA-Z0-9]

<强>输出

loremipsum -> false
loremipsum999 -> false
loremipsum_ -> true
loremipsum/ -> true

<强>输入

import java.util.regex.*;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("loremipsum -> " + checkForCharAndDigits("loremipsum"));
        System.out.println("loremipsum999 -> " + checkForCharAndDigits("loremipsum999"));
        System.out.println("loremipsum_ -> " + checkForCharAndDigits("loremipsum_"));
        System.out.println("loremipsum/ -> " + checkForCharAndDigits("loremipsum/"));
    }

    public static boolean checkForCharAndDigits(String str) {
        Matcher m = Pattern.compile("[^a-zA-Z0-9]").matcher(str);
        if (m.find()) return true;
        else          return false;
    }
}