//
Search

[프로그래머스] 문자열 다루기 기본

[문제]
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
→ 난이도 엄청 쉬운 문제이지만 다른 사람 풀이를 메모하고자 작성.
[내 풀이]
class Solution { public boolean solution(String s) { boolean answer = false; if((s.replaceAll("[0-9]", "").length() == 0) && (s.length() == 4 || s.length() == 6)) { return true; } return answer; } }
JavaScript
복사
→ 정규식 표현 사용
[다른 사람 풀이 1]
class Solution { public boolean solution(String s) { if(s.length() == 4 || s.length() == 6){ try{ int x = Integer.parseInt(s); return true; } catch(NumberFormatException e){ return false; } } else return false; } }
JavaScript
복사
→ Integer.parseInt로 정수 파싱 할 때 예외 발생 시 false로 return한 게 흥미로웠음
→ 하지만 별로 좋은지는 모르겠음 (이펙티브 자바 참고)
→ +123, -123 경우 false 나와야 하는데 true 나옴
[다른 사람 풀이 2]
class Solution { public boolean solution(String s) { if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)"); return false; } }
JavaScript
복사
→ matches 사용