Java 中检查字符串是否只包含 Unicode 字母、数字或空格


要检查给定的字符串是否只包含 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) // checks if the String is null {
         return false;
      }
      int len = s.length();
      for (int i = 0; i < len; i++) {
         // checks whether the character is neither a letter nor a digit and not even a space
         // if it is neither a letter nor a digit and not even a space then it will return false
         if ((Character.isLetterOrDigit(s.charAt(i)) == false) && s.charAt(i)!=' ') {
            return false;
         }
      }
      return true;
   }
   public static void main(String [] args) {
      Example e = new Example();
      String s = "@ # @"; // returns false due to special character presence
      String s1 = "134s"; // returns true
      String s2 = "1 0d"; // returns true
      String s3 = "1 x"; // returns true
      System.out.println("String "+s+" has only unicode letters,digits or space : "+e.check(s));
      System.out.println("String "+s1+" has only unicode letters,digits or space: "+e.check(s1));
      System.out.println("String "+s2+" has only unicode letters,digits or space: "+e.check(s2));
      System.out.println("String "+s3+" has only unicode letters,digits or space : "+e.check(s3));
   }
}

输出

String @ # @ has only unicode letters,digits or space : false
String 134s has only unicode letters,digits or space: true
String 1 0d has only unicode letters,digits or space: true
String 1 x has only unicode letters,digits or space : true

更新于: 2020-06-25

796 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告