s.length()
가 4나 6이 아니면 false 반환 - if
처음에는 위와 같이 풀이하고 싶었으나, 예외 상황 처리를 어떻게 적용할지 몰라 아래와 같이 했다.
1.s.length()
가 4나 6이 아니면 false 반환 - if
2. 문자열으 하나씩 빼내서 '0'과 '9' 범위를 벗어나면 false 반환 = for
, charAt(i)
class Solution {
public boolean solution(String s) {
if(s.length() != 4 && s.length() != 6) return false;
for (int i = 0; i< s.length(); i++) {
if (s.charAt(i) < '0' || s.charAt(i) > '9') return false;
}
return true;
}
}
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;
}
}
처음에 풀고 싶었던 방법이 좋아요 많은 풀이에 나와있었다.
try-catch문에 예외를 처리하기 위한 구문이다.
사용법
try {
// 예외처리 테스트할 코드
} catch (Exception1 e1) {
// Exception1이 발생했을 때 예외처리 구문(ex-예외 메시지)
}
예시
int num;
try {
num = 4 / 0;
} catch (ArithmeticException e) {
num = 7;
}
return num;
ArithmeticException
은 정수를 0으로 나눌 때 생기는 에러이다. num을 0으로 나누었으므로 예외처리 구문이 수행되게 된다.
7
NumberFormatException
은 숫자형 포맷 오류로 문자를 숫자로 변경하려고 할 때 생기는 에러이다.
s에 숫자만 담겨있다면 true가 s에 문자열이 포함되어있다면 Integer.parseInt()
를 수행할 때 NumberFormatException
오류가 발생해 false를 반환한다.