Question :
고객번호를 넣어서 검색하는 프로그램을 짜고 있는데
번호를 입력하는 칸에 이름, 영문과 같은 문자열이 입력됐을 때는
숫자를 입력해달라고 하는 에러메시지가 나오게 하고 싶습니다.
어떤 함수를 써야하나요? ㅠㅜ
Answer:
숫자만 검증하는 부분에서 유용하게 사용할 수 있는게 정규식입니다.
정규식은 대문자, 소문자, 숫자, 문자패턴등을 효율적으로 판별할 수 있도록 합니다.
질문자님의 의도대로 숫자가 아닌 문자가 입력되면 오류 메시지를 출력하는 부분은
정규식을 숫자로 검색해서 일치가 안되면 오류 메시지를 출력하면 됩니다.
1. Pattern pattern = Pattern.compile(“[\\d]*”); // 숫자만 포함하는 패턴
2. boolean match = pattern.matcher(str).matches(); // 일치하면 숫자 아니면 문자가 포함된 경우 입니다.
package naverkin;
import java.util.Scanner;
import java.util.regex.Pattern;
public class ValidateNumber {
public static void main(String[] args) {
// 간단하게 예를 들어 입력하는 하는 로직을 넣겠습니다.
Scanner scanner = new Scanner(System.in);
// 숫자를 구별하는 정규 표현식
Pattern pattern = Pattern.compile("[\\d]*");
while(true) {
// 사원 번호를 입력받습니다.
System.out.print("사원번호: ");
String str = scanner.next();
// 입력된 글자중 숫자가 아닌 글자가 있으면 false 가 리턴 됩니다.
boolean match = pattern.matcher(str).matches();
if(match) {
System.out.println("올바른 사원 번호 입니다.");
break;
} else {
System.out.println("잘못된 사원 번호 입니다. 다시 입력해주세요.");
}
}
}
}