728x90
오늘은 이전에 배운걸 조금 복습을 했다.
우선 어제 만들었던 야구게임을 보고있었는데.... 치명적오류? 내실수다...
System.out.print((count + 1) + "번째 시도 : ");
int num = scanner.nextInt(); //이부분
String user = Integer.toString(num);
if(user.length() != 3){
System.out.println("3자리만 입력하세요");
continue;
}
Main.userNumber(user);
처음에 컴퓨터가 랜덤 숫자 3자리를 만들어주면 사용자가 맞추기 위해서 숫자를 입력을 한다...
나는 우선 int 타입으로 입력을 받고 String으로 형변환후에
private static void userNumber(String user) {
usern.clear();
if(user != null) {
for (int j = 0; usern.size() < 3; ) {
usern.add(user.charAt(j) - '0');
j++;
}
}
System.out.println(usern);
}
usern 이라는 리스트에 담아줬다...
여기서가 문제이다....
처음 입력받을때 만약에 012를 입력을 했다고 하자
그러면 int 형이라서 12로 인식한다....ㅎ 앞에 0 을 빼버린다.. 그래서 아래 if문에 걸린다. ㅋㅋ 야레야레...
그래서 우선 스트링으로 입력받게 했다.
System.out.print((count + 1) + "번째 시도 : ");
String user = scanner.next();
if(user.length() != 3){
System.out.println("3자리만 입력하세요");
continue;
}
Main.userNumber(user);
잘 돌아간다. 문제는 한글도 들어간다는것이다...ㅋㅋ
이제 입력받은 user 변수를 정규표현식으로든 뭐든 숫자만 입력할 수 있게 유효성 검사를 해야할거 같다.
Pattern.matches("^[0-9]*$", user);
Pattern.matches(); 함수를 이용해서 숫자인지 유효성 검사를 함 해야겠다
if(!Pattern.matches("^[0-9]*$",user)){
System.out.println("숫자를 입력해주세요.");
continue;
}
이자식을 추가했다..ㅋ
숫자만 잘 들어온다! 해결쓰ㅋ 다른방법이 있는지 또 찾아봐야겠다
[블로그 정리]
'TIL > 2023' 카테고리의 다른 글
[0616] TIL (0) | 2023.06.16 |
---|---|
[0615] TIL (0) | 2023.06.16 |
[0613] TIL (0) | 2023.06.14 |
[0612] TIL (0) | 2023.06.13 |
[0607] 미니 프로젝트 TIL (0) | 2023.06.07 |