English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

문자열에서 비ASCII 문자를 제거하는 방법

Posix 문자 클래스\ p {ASCII} ASCII 문자와 일치하며, 원자문자 ^는 부정으로 사용됩니다.

즉, 다음 표현식은 모든 비ASCII 문자를 매칭합니다.

"[^\\p{ASCII}]"

replaceAll()String 클래스의 메서드는 정규 표현식과 대체 문자를 받아서 지정된 대체 문자로 현재 문자열의 문자를 대체합니다(지정된 패턴과 일치하는 문자).

따라서, 다음과 같이 사용할 수 있습니다.replaceAll()매칭된 문자를 빈 문자열 ""로 대체하여 매칭된 문자를 지우는 방법입니다.

예제1

import java.util.Scanner;
public class Exp {}}
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      String regex = "[^\\p{ASCII}]";
      System.out.println("입력 데이터를 입력하세요:");
      String input = sc.nextLine();
      String result = input.replaceAll(regex, "");
      System.out.println("결과: ");+result);
   }
}

출력 결과

입력 데이터를 입력하세요:
우리는 왜 떨어지는가
결과: 우리는 왜 떨어지는가

예제2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("입력 문자열을 입력하세요: ");
      String input = sc.nextLine();
      String regex = "[^\\p{ASCII}]";
      //패턴 객체를 생성합니다
      Pattern pattern = Pattern.compile(regex);
      //문자열 내의 컴파일된 패턴을 일치시킵니다
      Matcher matcher = pattern.matcher(input);
      //비어 있는 문자열 버퍼를 생성합니다
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("결과: \n");+ sb.toString());
   }
}

출력 결과

입력 문자열을 입력하세요:
우리는 왜 떨어지는가
결과:
우리는 왜 떨어지는가
추천해드립니다