在 Java 中检查字符串是否仅包含 unicode 字母、数字或空格

java 8object oriented programmingprogramming

要检查给定的字符串是否仅包含 unicode 字母、数字或空格,我们使用带有决策语句的 isLetterOrDigit() 和 charAt() 方法。

isLetterOrDigit(char ch) 方法确定特定字符 (Unicode ch) 是字母还是数字。它返回一个布尔值,即 true 或 false。

声明 −java.lang.Character.isLetter() 方法声明如下 −

public static boolean isLetter(char ch)

charAt() 方法返回给定索引处的字符值。它属于 Java 中的 String 类。索引必须介于 0 到 length()-1 之间。

声明 −java.lang.String.charAt() 方法声明如下 −

public char charAt(int index)

让我们看一个 Java 程序,它检查字符串是否仅包含 Unicode 字母、数字或空格。

示例

public class Example {
   boolean check(String s) {
      if (s == null) // 检查字符串是否为 null {
         return false;
      }
      int len = s.length();
      for (int i = 0; i < len; i++) {
         // 检查字符是否既不是字母也不是数字,甚至不是空格
         // 如果既不是字母也不是数字,甚至不是空格,则返回 false
         if ((Character.isLetterOrDigit(s.charAt(i)) == false) && s.charAt(i)!=' ') {
            返回 false;
         }
      }
      return true;
   }
    public static void main(String [] args) {
      Example e = new Example();
      String s = "@ # @"; // 由于存在特殊字符而返回 false
      String s1 = "134s"; // 返回 true
      String s2 = "1 0d"; // 返回 true
      String s3 = "1 x"; // 返回 true
      System.out.println("字符串 "+s+" 仅包含 unicode 字母、数字或空格:"+e.check(s));
      System.out.println("字符串 "+s1+" 仅包含 unicode 字母、数字或空格:"+e.check(s1));
      System.out.println("字符串 "+s2+" 仅包含 unicode 字母、数字或空格:"+e.check(s2));
      System.out.println("字符串 "+s3+" 仅包含 unicode 字母、数字或空格 : "+e.check(s3));
   }
}

输出

字符串 @ # @ 仅包含 unicode 字母、数字或空格 : false
字符串 134s 仅包含 unicode 字母、数字或空格 : true
字符串 1 0d 仅包含 unicode 字母、数字或空格 : true
字符串 1 x 仅包含 unicode 字母、数字或空格 : true

相关文章