การใช้นิพจน์ทั่วไป
คุณสามารถค้นหาว่าค่าสตริงเฉพาะมีอักขระ 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