Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java로 문자열에 특수 문자가 포함되어 있는지 확인하는 방법

자바(Java)에서는 정규 표현식(Regular Expression)을 활용하면 문자열에 특수 문자가 포함되어 있는지 손쉽게 확인할 수 있습니다. 아래 예제를 통해 그 구현 방법을 살펴보겠습니다.

예제 코드

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo {
   public static void main(String[] args){
      String my_str="This is a sample only !$@";
      Pattern my_pattern = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
      Matcher my_match = my_pattern.matcher(my_str);
      boolean check = my_match.find();
      if (check)
         System.out.println("Special character found in the string");
      else
         System.out.println("Special character not found in the string");
   }
}

실행 결과

Special character found in the string

코드 설명

위 프로그램의 동작 과정을 단계별로 살펴보면 다음과 같습니다.

1. 클래스 및 main 메서드 정의: Demo라는 이름의 클래스 안에 main 함수가 선언되며, 이곳에서 모든 로직이 실행됩니다.

2. 검사 대상 문자열 생성: my_str 변수에 특수 문자(!$@)가 포함된 샘플 문자열이 저장됩니다.

3. 패턴(Pattern) 정의: Pattern.compile() 메서드를 사용해 정규 표현식 [^a-z0-9 ]을 컴파일합니다. 이 패턴은 영문 소문자(a-z), 숫자(0-9), 공백( )을 제외한 나머지 모든 문자, 즉 특수 문자를 의미합니다. 또한 Pattern.CASE_INSENSITIVE 옵션을 적용하여 대소문자 구분 없이 검사가 수행됩니다.

4. 매칭(Matcher) 수행: matcher() 메서드로 문자열과 패턴을 연결한 뒤, find() 메서드를 호출해 일치하는 문자가 존재하는지 확인하고 그 결과를 boolean 타입 변수 check에 저장합니다.

5. 결과 출력: check 값이 true이면 문자열에 특수 문자가 존재한다는 메시지를, false이면 특수 문자가 없다는 메시지를 화면에 출력합니다.

참고 사항

위의 정규 표현식은 영문 알파벳과 숫자만 허용하므로, 한글이나 다른 언어권 문자도 특수 문자로 간주될 수 있습니다. 한글을 허용하려면 패턴을 [^a-zA-Z0-9가-힣 ]과 같이 수정하면 됩니다. 필요에 따라 허용할 문자 범위를 조정하여 다양한 유효성 검사에 활용할 수 있습니다.