Back-End/Java

[ JAVA ] 정규표현식 - (예) 주민등록번호, 우편번호, 국어점수

oahee 2023. 7. 23. 18:49

1. 주민등록번호

// 주민등록번호 000000-0000000
// resident registration number
String rrn = "123456-1234567";

String regex = "[0-9]{6}-\\d{7}";
// 숫자 [0-9]  \d
// 반복횟수 ?(0,1) +(1,여러번) *(0, 여러번)
// 				{n} : n번 와야함
//				{n,m} : n~m번 와야함
//				{n,} : n번 이상 와야함

if (rrn.matches(regex)) {
	System.out.println("올바른 주민등록번호 형식");
} else {
	System.out.println("잘못된 주민등록번호 형식");
} //if

 

2. 우편번호

// 우편번호 (구)000-000	(신)00000
String [] zipCodes = {"123-456", "12345", "123456", "123-a56", "123-3456"};
		
// 논리 연산자 앞뒤에 공백을 주면 안됨
String regex = "\\d{3}-\\d{3}|\\d{5}";
boolean flag = false;
for (int i = 0; i < zipCodes.length; i++) {
	flag = zipCodes[i].matches(regex);
	System.out.printf("%s - %s 우편번호\n", zipCodes[i], flag? "올바른" : "잘못된");
} //for

 

3. 국어점수

import java.util.Scanner;

public class Ex05_02 {
	public static void main(String[] args) {
		// 국어점수(kor)을 입력받아서
		// 0<= <=100
		// 올바른 국어 점수, 잘못된 국어점수 출력...

		//String regex = "[0-9]{1,3}";		// 255 를 입력하면 true
		//String regex = "[0-9]{1,2}|100";	// 09 를 입력하면 true
		//String regex = "[0-9]|[1-9][0-9]|100";
		String regex = "[1-9]?[0-9]|100";	//	[1-9]? : 1~9가 와도 안와도 상관 없음
		
		String kor = null;
		boolean failFlag = false;
		int failCount=0;
		try (Scanner scanner=new Scanner(System.in)) {

			do {
				System.out.print("> 국어점수를 입력 ?  ");
				kor = scanner.next();
				failFlag = kor.matches(regex);

				if (!failFlag) {
					failCount++;
					System.out.printf("> [알림] %s : %d회 잘못 입력했습니다. (0~100)  \n\n", kor, failCount);
					if (failCount == 5) {
						System.out.println("> [프로그램 종료] 5회 이상 잘못 입력");
						return;
					} //if 5회이상 프로그램종료
				} //if 잘못 입력 알림
			} while ( !failFlag );

			System.out.printf("> %s 는 올바른 국어점수 입니다.\n" , kor);	
			System.out.println("> [프로그램 종료]");

		} catch (Exception e) {
			e.printStackTrace();
		}
	} //main
} //class

 

 

<정규표현식 정리>

 

 

[ JAVA ] 정규표현식

1. 정규표현식 문자열의 패턴을 표현하는데 사용되는 특별한 문자열 java.util.regex 패키지를 통해 사용 다양한 문자열 검색, 추출, 대체 등의 작업에 유용 2. 요소와 의미 2.1. 문자 클래스(Character Cla

process-y.tistory.com

 

'Back-End > Java' 카테고리의 다른 글

[ JAVA ] 메서드(함수)  (0) 2023.07.23
[ JAVA ] 가변인자  (0) 2023.07.23
[ JAVA ] char과 String의 대소문자 변경  (0) 2023.07.23
[ JAVA ] 이름 붙은 반복문  (0) 2023.07.23
[ JAVA ] 컴퓨터와 가위바위보 게임  (0) 2023.07.23