반응형
문제 설명 :
문자열 s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수, solution을 완성하세요.
예를들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다.
제한 조건 :
1. s는 길이 1 이상, 길이 8 이하인 문자열입니다.
총 3개로 풀었는데....왜 항상 내가 하면 안되고 남에거 가져다 쓰면 통과되는거지 휴...
1. 정규식입니다.(이건 통과 못함...5번 6번 뭐지?)
boolean solution(String s) {
return Pattern.compile("(^[0-9]*$)").matcher(s).find();
}
이게 끝이에요!! 정규식을 굳이 다 외울필요는 없습니다. 인터넷에 많으니까요!! 그니까 다른 방식으로 풀어볼게요!!
2. 간단한 방식이에요 char로 변경해서 풀기!!(아마 다 떠올리셨겟죠?)
boolean isChecked1(String s) {
int length = s.length();
if(length != 4 && length != 6) return false;
for(int i=0; i<length; i++) {
char c = s.charAt(i);
if(c < '0' || c > '9') {
return false;
}
}
return true;
}
이 방식은 char형을 조금이라도 알았다면 풀 수 있었을거에요!
마지막으로 3번입니다. 3번은 try/catch를 사용했어요!
boolean isChecked2(String s) {
if(s.length() == 4 || s.length() == 6) {
try {
int x = Integer.parseInt(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
return false;
}
요딴식!!! 굳이 NumberFormatException 을 안쓰고 Exception을 써도 되긴 하지만!!! 있는거 쓰자구요
이상 문제풀이었습니다.
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 level1 문제 : 소수 찾기(java) (0) | 2018.10.20 |
---|---|
프로그래머스 level1 문제 : 문자열 내림차순으로 배치하기(java) (0) | 2018.10.18 |
프로그래머스 level1 문제 : 문자열 내 마음대로 정렬하기(java) (2) | 2018.10.17 |
프로그래머스 level1 문제 : 문자열 내 p와 y의 개수(java) (0) | 2018.10.16 |
프로그래머스 level1 문제 : 두 정수 사이의 합(java) (0) | 2018.10.16 |