728x90
프로그래머스 Java 1단계 문자열 다루기 기본 문제입니다.
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s | return |
"a234" | false |
"1234" | true |
문제 해결 방법
① 문자열 s의 길이가 4 또는 6인지 확인
⑴ 문자열 길이가 4 또는 6인 경우 ▶ 숫자로 변환 시도
⒜ 숫자로 변환 실패한 경우 ▶ NumberFormatException 에러, False 반환
⒝ 숫자로 변환 성공한 경우 ▶ True 반환
⑵ 문자열 길이가 4 또는 6이 아닌 경우 ▶ False 반환
더보기
class Solution {
public boolean solution(String s) {
if(s.length() == 4 || s.length() == 6){
try{
Integer.parseInt(s);
return true;
}
catch(Exception e){
return false;
}
}
return false;
}
}
※ try ⋯ catch 구문
프로그래머의 실수로 발생할 수 있는 에러, 또는 프로그램내에서 더이상 처리할 수 없는 상황일 때 발생하는 에러들을 예외처리할 수 있는 구문입니다.
위 문제에서는 Exception 클래스로 해당 에러에 대한 예외처리를 진행 하였지만, 다음 예시를 참고하여 에러발생시 다양한 예외처리 방법을 익혀두시면 좋습니다.
try{
//에러가 발생할 수 있는 코드
throw new Exception(); //강제 에러 출력
} catch(ArithmeticException ex1) {
System.out.println("0으로 나누는 처리 발생");
} catch(IndexOutOfBoundsException ex2) {
System.out.println("배열 또는 리스트 등 인덱스 범위 초과 발생");
} catch(NumberFormatException ex3) {
System.out.println("숫자로 변환할 수 없는 처리 발생");
} catch (Exception e){
System.out.println("에러 발생");
e.printStackTrace(); // 에러가 발생한 위치정보 출력
throw e; // 현재의 상위클래스에 에러 정보 전달
}finally{
// 현재 코드의 마지막 단계에서 반드시 실행
}
※ 위 코드는 해결 방법 중 한가지이며 더 효율적인 코드가 있을 수 있습니다.
문제 풀어보기 ▶ https://programmers.co.kr/learn/courses/30/lessons/12918?language=java
'programmers code review > _step1' 카테고리의 다른 글
문자열 내 p와 y의 개수 (1) | 2021.08.30 |
---|---|
문자열 내림차순으로 배치하기 (0) | 2021.08.29 |
서울에서 김서방 찾기 (0) | 2021.08.26 |
프로그래머스 위클리 챌린지 4주차 (0) | 2021.08.25 |
소수 찾기 (4) | 2021.08.24 |
댓글