package day0113;
// 정규표현식(Regular Expression)
// 어떤 String 패턴을 표현하는 방법
public class Ex03RegExp {
public static void main(String[] args) {
// 1. 숫자 체크
System.out.println("1. 숫자 체크");
String pattern = "\\d"; // 해당 String 이 한개의 숫자 하나로만 이뤄졌는지를 체크
System.out.println("\"1\" : " + "1".matches(pattern)); // true
System.out.println("\"a\" : " + "a".matches(pattern)); // false
System.out.println("--------------------------------------------------\n");
// 2. 글자 체크
System.out.println("2. 글자 체크");
pattern = "\\w"; // 해당 String 이 한개의 단어 하나로만 이뤄졌는지를 체크
System.out.println("\"1\" : " + "1".matches(pattern)); // true
System.out.println("\"a\" : " + "a".matches(pattern)); // true
System.out.println("--------------------------------------------------\n");
// 2-1. 알파벳 체크
System.out.println("2-1. 알파벳 체크");
pattern = "[A-Za-z]"; // [] 범위로 묶어줌
System.out.println("\"1\" : " + "1".matches(pattern)); // false
System.out.println("\"a\" : " + "a".matches(pattern)); // true
System.out.println("--------------------------------------------------\n");
// 3. 여러개의 숫자로만 이루어졌는지 체크
System.out.println("3. 여러개의 숫자로만 이루어졌는지 체크");
pattern = "\\d+"; // \\d+ 1개 이상의 숫자, \\d* 0개이상의 숫자
System.out.println("\"1\" : " + "1".matches(pattern)); // true
System.out.println("\"123\" : " + "123".matches(pattern)); // true
System.out.println("--------------------------------------------------\n");
// 4. 복합접으로 섞어서 사용해보기
System.out.println("4. 복합접인 사용");
pattern = "010-\\d{4}-\\d{4}"; // \\d{숫자 갯수}
System.out.println("\"010-1234-1234\" : " + "010-1234-1234".matches(pattern)); // true
System.out.println("\"010-9999-8888\" : " + "010-9999-8888".matches(pattern)); // true
System.out.println("\"02-111-2222\" : " + "02-111-2222".matches(pattern)); // false
System.out.println("\"서울시 강남구 강남동 강남로\" : " + "서울시 강남구 강남동 강남로".matches(pattern)); // false
System.out.println("\"admin@gmail.com\" : " + "admin@gmail.com".matches(pattern) ); // false
System.out.println("--------------------------------------------------\n");
pattern = "\\d{3,6}"; // \\d{3,6} 3개에서 6개의 숫자
System.out.println("\"1\" : " + "1".matches(pattern)); // false
System.out.println("\"135\" : " + "135".matches(pattern)); // true
System.out.println("\"13579\" : " + "13579".matches(pattern)); // true
System.out.println("\"123456\" : " + "123456".matches(pattern)); // true
System.out.println("\"1234567\" : " + "1234567".matches(pattern)); // false
System.out.println("--------------------------------------------------\n");
}
}
정규식을 활용해서 ScannerUtil 수정하기
nexInt()에서 문자를 입력하면 오류 발생 아래와 같이 정규식을 이용해서 변경
public static int nextInt(Scanner scanner, String message){
String strTemp = nextLine(scanner, message);
while (!strTemp.matches("\\d+")) {
System.out.println("잘못 입력하셨습니다.");
strTemp = nextLine(scanner,message);
}
int temp = Integer.parseInt(strTemp);
return temp;
}
'JX405기_비트 > Java' 카테고리의 다른 글
| Day05-5 4일차 숙제 강사님 풀이 02 Date를 활용한 날짜 제공 (0) | 2023.01.16 |
|---|---|
| Day05-5 4일차 숙제 강사님 풀이 01 (0) | 2023.01.16 |
| Day05-3 Connection을 이용한 db연결 만들기 (0) | 2023.01.16 |
| Day05-2 인터페이스 상속 (0) | 2023.01.16 |
| Day05-1 클래스 상속 (0) | 2023.01.16 |