在 Java 中,如何检查一个字符串是否只包含 ASCII 字符?
使用正则表达式
您可以使用以下正则表达式来查找特定的字符串值是否包含 ASCII 字符:
\A\p{ASCII}*\zString 类中的 matches() 方法接受一个正则表达式,并验证当前字符串是否与给定表达式匹配。如果是,则返回 true,否则返回 false。
因此,通过将上述指定的正则表达式作为参数传递给输入/所需字符串,调用 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。
String 类中的 charAt() 方法接受一个整数值并返回指定索引处的字符。
使用此方法检索给定字符串中的每个字符,并验证它们是否大于 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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP