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 |