private static RegexHelper current;
public static RegexHelper getInstance(){
if (current == null ){
current = new RegexHelper();
}
return current;
}
public static void freeInstance() {
current = null;
} // freeInstance()는 생략가능, 객체에 null을 입력하면 삭제된다는 뜻
priavate RegexHelper2(){}
// boolean 변수로 문자열이 공백 or null 이면 false, 문자열이면 true
public boolean isValue(String str){
//boolean result의 기본값은 false
boolean result = false;
// 만약 문자열이 비어있지 않으면
if ( str != null ){
//result 값 = 문자열의 공백을 제외한 값이 공백이 아닌게 맞다 = true
//result 값 = 문자열의 공백을 제외한 값이 공백이 아닌게 아니다 = false
//equals도 true/false의 값을 가짐
result = !str.trim().equals("");
}
// 만약 문자열이 비어있으면 result 값으로 돌아가라 -> 기본값 false로
return result;
}
* true/false 값만 담으면 됨
*** 이름 한글 여부 ***
// 이름배열이 한글인지 아닌지 true/false
public boolean isKor( String str ) {
boolean result = false;
// isValue의 값이 true이면
if( isValue(str) ) {
// 패턴 매치가 true인지 false인지의 값이 result에 담긴다.
result = Pattern.matches("^[ㄱ-ㅎ가-힣]*$", str);
}
// 아니면 result는 디폴트값인 false.
return result;
}
* true / false값만 담으면 됨
--------싱글톤 객체를 담은 클래스 완성---------
String name = "자바학생";
//study클래스 객체의 isKor 메소드에 변수 name을 담고
//그 값이 true가 아니면, 다음값을 출력하고
if(!study.getInstance().isKor(name)) {
System.out.println("이름을 한글로 입력해주세요");
// 더 이상 메소드 진행하지 않고 돌아감
return;
}
System.out.println("회원가입 절차를 시작합니다.");
// 싱글톤 객체를 담은 클래스 시작
import java.util.regex.Pattern;
public class study {
private static study current;
public static study getInstance() {
if( current == null ) {
current = new study();
}
return current;
}
public static void freeInstance() {
current = null;
}
private study () {}
public boolean isValue(String str) {
boolean result = false;
if ( str != null ) {
result = !str.trim().equals("");
}
return result;
}
// 이름 한글 여부
public boolean isKor( String str ) {
boolean result = false;
if( isValue(str) ) {
result = Pattern.matches("^[ㄱ-ㅎ가-힣]*$", str);
}
return result;
}
//숫자 나이 여부
public boolean isAge( String str ) {
boolean result = false;
if( isValue(str) ) {
result = Pattern.matches("^[0-9]*$", str);
}
return result;
}
//이메일 형식 여부
public boolean isEmail( String str ) {
boolean result = false;
if( isValue(str) ) {
result = Pattern.matches("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$", str);
}
return result;
}
//전화번호 숫자 형식 여부(기호 "-"제거 했는 지)
public boolean isNum( String str ) {
boolean result = false;
if( isValue(str) ) {
result = Pattern.matches("^01(?:0|1|[6-9])(?:\\d{3}|\\d{4})\\d{4}$", str);
}
return result;
}
// 싱글톤을 담은 클래스 끝
//메인메서드를 담은 클래스
public class Main {
public static void main(String[] args) {
String name = "자바학생";
String age = "30";
String email = "abc@gac.com";
String num = "01012345678";
if(!study.getInstance().isKor(name)) {
System.out.println("이름을 한글로 입력해주세요");
return;
}
if(!study.getInstance().isAge(age)) {
System.out.println("나이를 숫자로 입력해주세요");
return;
}
if(!study.getInstance().isEmail(email)) {
System.out.println("이메일의 양식을 지켜주세요");
return;
}
if(!study.getInstance().isNum(num)) {
System.out.println("전화번호의 숫자만 입력해주세요");
return;
}
System.out.println("회원가입 절차를 시작합니다.");
}
}
// 출력 : 회원가입의 절차를 시작합니다.
System.out.println(isEng(""));