Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

String에 Java에서 ASCII만 포함되어 있는지 확인할 수 있습니까?

<시간/>

정규 표현식 사용

다음 정규식을 사용하여 특정 문자열 값에 ASCII 문자가 포함되어 있는지 여부를 찾을 수 있습니다. -

\\A\\p{ASCII}*\\z

일치() String 클래스의 메소드는 정규 표현식을 받아들이고 현재 문자열이 주어진 표현식과 일치하는지 확인하여 일치하면 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보다 작거나 같습니다.

  • 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