public class _5_matches_study {
public static void main(String[] args){
System.out.println("[matches 정규식 - matches 정규식을 사용해 문자,숫자,특수문자 여부 확인]");
String value = "D1-G2*";
System.out.println("원본 : " + value);
for(int i = 0; i < value.length() ; i++){
// 특수기호인 경우
if(String.valueOf(value.charAt(i)).matches("[^a-zA-Z0-9\\s]")){
System.out.println(value.charAt(i) + " : " + "특수문자");
}else{
// 숫자인경우
if(Character.isDigit(value.charAt(i))){
System.out.println(value.charAt(i)+ " : " + "숫자");
}else{
// 문자인 경우
System.out.println(value.charAt(i) + " : " + "문자");
}
}
} // for문 종료
} // main 종료
} // class 종료
[결과]
matches를 사용하면 정규식을 만들 수 있다.
[^a-zA-Z0-9]
- 공백도 특수 문자로 인식한다.[^a-zA-Z0-9\\s]
- 공백은 특수 문자로 인식하지 않는다.특수문자가 아니면 숫자인지, 문자인지를 확인한다.
String.valueOf()
를 통해 char
인 value.charAt(i)를 String으로 변환
해준 뒤, matches를 사용한다.
Character.isDigit(char)
을 이용하여 숫자인지 파악
한다.
matches를 통해 특수기호, Character.isDigit을 통해 숫자가 아닌 경우는 문자로 인식한다.