Pattern p = Pattern.compile("^[A-Za-z][A-Za-z0-9]{2,9}$");
=> ^ : 시작
=> [ ] : 글자 1개가 들어오는 것
=> [A-Za-z] : 영문자만 가능하다.
=> [A-Za-z0-9] : 영문자 또는 숫자만 가능하다.
=> [ ] {a,b} : [ ] 안 글자가 최소 a번 최대 b번 반복한다.
-> 최소 2번 반복으로 최대글자수는 3
-> 첫번째 글자 - [A-Za-z] 만 가능
-> 두번째 ~ 마지막 글자 = [A-Za-z0-9] 만 가능
Matcher m = p.matcher(userid); // 패턴과 일치하는지 확인
-> userid가 정규식 패턴과 일치하는지 확인
-> boolean 타입으로 도출된다.
if(m.matches()) { // 정규식 패턴과 일치하면
this.userid = userid;
} else { // 정규식 패턴과 일치하지 않으면
System.out.println("[경고] 아이디는 3~10글자로, "
+ "첫글자는 영문이어야 하고 나머지는 영문 또는 숫자로만 "
+ "이루어져야 합니다.\n");
public void setName(String name) {
// 성명은 공백이 없는 한글로만 이루어져야 하며 2~6글자이어야 한다.
Pattern p = Pattern.compile("^[가-힣]{2,6}$");
Matcher m = p.matcher(name); // name이 유효성에 맞는지 검색
if(m.matches()) { // 검사 통과할 경우
this.name = name;
// 캡슐화되어있기 때문에 나의 객체에 있으면 this. 으로 표현
} else {
System.out.println
("[경고] 성명은 공백이 없는 한글로만 이루어져야 하며,"
+ "2~6글자로 이루어져야 합니다.");
} // end of if~else--------
} // end of public void setName(String name)-----------
my.day.12.a.capsulation -> Gujikja