본문 바로가기
Language/Java

[Programmers | Java | 연습문제 풀이] 문자열 다루기 기본 - Solution with length() & char 또는 try-catch Statement

by ㅇ달빛천사ㅇ 2024. 7. 2.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기  |  Algorithm CODEKATA

🆎 문자열 다루기 기본


🏷 관련 주제 : String char length()  toCharArray() Exception try-catch




✔️ Solution with length() & tocharArray() & char

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int len = s.length();
        
        if (len != 4 && len != 6) {
            answer = false;
        } else {
            for (char c : s.toCharArray()) {
                if (c < '0' || c > '9') {
                    answer = false;
                    break;
                }
            }
        }
        
        return answer;
    }
}
채점 결과


✔️ Solution with try-catch Statement

class Solution {
    public boolean solution(String s) {        
        try {
            int n = Integer.valueOf(s);
            
            if (s.length() == 4 || s.length() == 6) {
                return true;
            }
        } catch(NumberFormatException e) {
    
        }
        
        return false;
    }
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성되어 있으면 true아니면 false를 반환하는 함수, solution을 완성하세요.


문자열 길이length()메서드를 통해 알 수 있다.
if문을 통해
s의 길이 s.length()4혹은 6이 아니면 반환할 boolean answerfalse를 할당
s의 길이가 4 또는 6이면 int i의 범위가 0 ~ s.length() - 1인 반복문을 돌면서

문자열 si번 인덱스의 문자를 charAt()메서드를 통해 가져올 수 있다.

si번 인덱스의 문자 s.charAt(i)를 char c에 할당한다.

숫자로된 문자는 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'이고
이 값들은 정수로 변환하면 48 ~ 57 사이의 값들이다.
char형 끼리는 굳이 정수형으로 변환하지 않더라도 비교 연산자로 비교가 가능하다.
char cc <= '0' 이고 c >= '9' 이면 숫자
c < '0' 또는 c > '9'이면 문자


c'0'보다 작거나 '9'보다 크면 문자열 s가 숫자가 아닌 문자 c를 포함한는 것이므로
boolean answerfalse를 할당하고 반복문을 종료한다.

마지막으로 answer에 할당된 boolean 값을 반환한다.


숫자가 아닌 문자가 포함된 문자열 "a234"Integer.valueOf()메서드를 사용하면
Exception이 발생한다.


이것을 이용해서 문제를 풀어보기로 했다.

바로 Try-Catch문을 이용해서
Exception이 발생하면 false를 반환하고
아니면 문자열 길이가 4 또는 6을 만족할 때, true를 반환하도록 문제를 풀어보았다.



💬 무엇을 새롭게 알았는지

String, char형을 다루어 보았다.
char형의 값을 비교하는 코드를 작성해 보았다.



 

📚 참고 자료

 

 

 

 

 

 

 
 
728x90