您可以使用以下正则表达式查找特定的String值是否包含ASCII字符-
\\A\\p{ASCII}*\\z
String类的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(); //验证ACCII- boolean result = input.matches("\\A\\p{ASCII}*\\z"); if(result) { System.out.println("String approved"); } else { System.out.println("Contains non-ASCII values"); } } }
Enter a string value: hello how are you String approved
Enter a string value: whÿ do we fall Contains non-ASCII values
如果将ASCII字符转换为整数,则所有结果将小于或等于127。
String类的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(); //将给定的字符串转换为字符数组 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"); } } }
Enter a string value: whÿ false Contains non-ASCII values
Enter a string value: hello true String approved