使用正则表达式
您可以使用以下正则表达式查找特定的String值是否包含ASCII字符-\\A\\p{ASCII}*\\z
String类的matches()方法接受正则表达式,并验证当前字符串是否与给定表达式匹配(如果匹配),则返回true,否则返回false。
因此,通过将上述指定的正则表达式作为参数传递,从而对输入/所需字符串调用matches()方法。
示例importjava.util.Scanner;
publicclassOnlyASCII{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("Enterastringvalue:");
Stringinput=sc.nextLine();
//验证ACCII-
booleanresult=input.matches("\\A\\p{ASCII}*\\z");
if(result){
System.out.println("Stringapproved");
}else{
System.out.println("Containsnon-ASCIIvalues");
}
}
}
输出1Enterastringvalue:
hellohowareyou
Stringapproved
输出2Enterastringvalue:
whÿdowefall
Containsnon-ASCIIvalues
验证每个字符
如果将ASCII字符转换为整数,则所有结果将小于或等于127。String类的charAt()方法接受一个整数值并返回指定索引处的字符。
使用此方法检索给定String中的每个字符,并验证它们是否大于127。
示例importjava.util.Scanner;
publicclassOnlyASCII{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("Enterastringvalue:");
Stringinput=sc.next();
//将给定的字符串转换为字符数组
charcharArray[]=input.toCharArray();
booleanresult=true;
for(inti=0;i
inttest=(int)input.charAt(i);
if(test<=127){
result=true;
}elseif(test>127){
result=false;
}
}
System.out.println(result);
if(result){
System.out.println("Stringapproved");
}else{
System.out.println("Containsnon-ASCIIvalues");
}
}
}
输出1Enterastringvalue:
whÿ
false
Containsnon-ASCIIvalues
输出2Enterastringvalue:
hello
true
Stringapproved