विधि 1: रेगेक्स के साथ matches()
रेगेक्स \\A\\p{ASCII}*\\z पूरे स्ट्रिंग को ASCII के लिए मान्य करता है।
String input = "hello";
boolean isAscii = input.matches("\\A\\p{ASCII}*\\z"); // true
input = "whÿ";
isAscii = input.matches("\\A\\p{ASCII}*\\z"); // falseविधि 2: प्रत्येक वर्ण की जांच करें
ASCII वर्णों के कोड पॉइंट ≤ 127 होते हैं।
public static boolean isAscii(String s) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) > 127) return false;
}
return true;
}विधि 3: Charset एन्कोडिंग (Java 7+)
import java.nio.charset.StandardCharsets;
public static boolean isAscii(String s) {
return StandardCharsets.US_ASCII.newEncoder().canEncode(s);
}उदाहरण
Scanner sc = new Scanner(System.in);
System.out.print("Enter string: ");
String input = sc.nextLine();
if (input.matches("\\A\\p{ASCII}*\\z")) {
System.out.println("String approved");
} else {
System.out.println("Contains non-ASCII values");
}आउटपुट
Enter string: hello how are you String approved Enter string: whÿ do we fall Contains non-ASCII values
सिफारिश
सरलता के लिए विधि 1 (रेगेक्स) या स्पष्टता/प्रदर्शन के लिए विधि 3 (Charset) का उपयोग करें।