프로그래밍 문제 17번 문자열 다루기
이 문제는 프로그래머스에서 제공된 문제를 풀이한 문제이며, 저작권은 프로그래머스에게 있습니다.
언어 : Java
문제 : 문자열다루기
문제번호: 17번
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
s | return |
"a234" | false |
"1234" | true |
Solution.java
class Solution {
public boolean solution(String s) {
boolean answer = false;
if(s.length()== 4 || s.length() == 6) {
try {
int a = Integer.parseInt(s);
answer = true;
} catch (NumberFormatException e) {
answer = false;
}
}
return answer;
}
}
답안 도출 과정:
1. 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수 를 읽고,
string 타입으로 문자열 s를 선언 한다.
2.문자열이 들어있을 경우 false를 answer에 입력한다.
3. if 조건문을 활용해서 문자열 s 의 길이가 4일경우, 문자열 s 의 길이가 6일 경우 try - catch 문을 이용해서 예외처리를 해준다.
4. 문자열 s 의 길이가 4 혹은 문자열 s 의 길이가 6일 경우 integer.parseInt 를 활용해서 예외처리를 하고 true를 리턴한다.
5.문자를 숫자로 변경하려다 발생하는 에러인 NumberFormatException이 발생하면 false 값을 answer로 리턴한다.
※ 문제의 조건에 해당하지 않으면 boolean answer 는 false 를 기본값으로 나오게 하고
if문에서 빨간색 테두리를 친 부분으로 이동되면 ( 문자열 s 의 길이가 4 혹은 문자열 s 의 길이가 6일 경우 ,
문자를 숫자로 변경하려다 발생하는 에러인 NumberFormatException 이 나오지 않은경우 = 숫자로만 구성된경우 )
answer 값에 true를 리턴한다.
실행 메소드 추가
class Solution17 {
public boolean solution17(String s) {
boolean answer = false;
if(s.length()== 4 || s.length() == 6) {
try {
int a = Integer.parseInt(s);
answer = true;
} catch (NumberFormatException e) {
answer = false;
}
}
return answer;
}
public static void main(String[] args) {
Solution17 solution17 = new Solution17();
String s = "1234";
System.out.println(solution17.solution17(s));
}
}