Computer >> Máy Tính >  >> Lập trình >> Java

Có thể kiểm tra xem một Chuỗi chỉ chứa ASCII trong java không?

Sử dụng biểu thức chính quy

Bạn có thể tìm xem một giá trị Chuỗi cụ thể có chứa các ký tự ASCII hay không bằng cách sử dụng biểu thức chính quy sau -

\\A\\p{ASCII}*\\z

Kết quả phù hợp () phương thức của lớp String chấp nhận một biểu thức chính quy và xác minh xem chuỗi hiện tại có khớp với biểu thức đã cho hay không, nếu có thì nó trả về true, nếu không thì trả về false.

Do đó, hãy gọi các trận đấu () trên chuỗi đầu vào / bắt buộc bằng cách chuyển biểu thức chính quy được chỉ định ở trên làm tham số.

Ví dụ

import java.util.Scanner;
public class OnlyASCII {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a string value: ");
      String input = sc.nextLine();
      //Verifying for ACCII
      boolean result = input.matches("\\A\\p{ASCII}*\\z");
      if(result) {
         System.out.println("String approved");
      } else {
         System.out.println("Contains non-ASCII values");
      }
   }
}

Đầu ra1

Enter a string value:
hello how are you
String approved

Đầu ra2

Enter a string value:
whÿ do we fall
Contains non-ASCII values

Xác minh từng ký tự

Nếu bạn chuyển đổi các ký tự ASCII thành số nguyên, tất cả các kết quả sẽ nhỏ hơn hoặc bằng 127.

  • charAt () phương thức của lớp String chấp nhận một giá trị số nguyên và trả về ký tự tại chỉ mục được chỉ định.

  • Sử dụng phương pháp này, truy xuất từng ký tự trong Chuỗi đã cho và xác minh xem chúng có lớn hơn 127.

Ví dụ

import java.util.Scanner;
public class OnlyASCII {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a string value: ");
      String input =sc.next();
      //Converting given string to character array
      char charArray[] = input.toCharArray();
      boolean result = true;
      for(int i = 0; i < input.length(); i++) {
         int test = (int)input.charAt(i);
         if (test<=127) {
            result = true;
         }else if (test >127){
            result = false;
         }
      }
      System.out.println(result);
      if(result) {
         System.out.println("String approved");
      }else {
         System.out.println("Contains non-ASCII values");
      }
   }
}

Đầu ra1

Enter a string value:
whÿ
false
Contains non-ASCII values

Đầu ra2

Enter a string value:
hello
true
String approved