Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เป็นไปได้ไหมที่จะตรวจสอบว่า String มีเฉพาะ ASCII ใน java หรือไม่?


การใช้นิพจน์ทั่วไป

คุณสามารถค้นหาว่าค่าสตริงเฉพาะมีอักขระ ASCII หรือไม่โดยใช้นิพจน์ทั่วไปต่อไปนี้ -

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

matches() เมธอดของคลาส String ยอมรับนิพจน์ทั่วไปและตรวจสอบว่าสตริงปัจจุบันตรงกับนิพจน์ที่ระบุหรือไม่ ถ้าใช่ จะส่งคืนค่า จริง มิฉะนั้น คืนค่า เท็จ

ดังนั้น เรียกใช้ matches() เมธอดบนอินพุต/สตริงที่ต้องการโดยส่งนิพจน์ทั่วไปที่ระบุข้างต้นเป็นพารามิเตอร์

ตัวอย่าง

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");
      }
   }
}

ผลลัพธ์1

Enter a string value:
hello how are you
String approved

ผลลัพธ์2

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

การตรวจสอบอักขระแต่ละตัว

หากคุณแปลงอักขระ ASCII เป็นจำนวนเต็ม ผลลัพธ์ทั้งหมดจะน้อยกว่าหรือเท่ากับ 127

  • charAt() วิธีการของคลาส String ยอมรับค่าจำนวนเต็มและส่งกลับอักขระที่ดัชนีที่ระบุ

  • การใช้วิธีนี้ดึงอักขระแต่ละตัวในสตริงที่กำหนดและตรวจสอบว่ามีค่ามากกว่า 127 หรือไม่

ตัวอย่าง

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");
      }
   }
}

ผลลัพธ์1

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

ผลลัพธ์2

Enter a string value:
hello
true
String approved