🧩 프로그래머스/알고리즘 풀이(Java)

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

carrot0911 2024. 11. 21. 11:49

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼 있는지 확인해 주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.
  • s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

입출력 예

s return
"a234" false
"1234" true

 

내가 작성한 코드

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        
        int len = s.length();
        
        for (int i = 0; i < s.length(); i++) {
            if((len == 4 || len == 6) && Character.isDigit(s.charAt(i))) {
                answer = true;
            } else {
                answer = false;
                break;
            }
        }
        
        return answer;
    }
}

코드 설명

  • int len = s.length( ) : 문자열 s의 길이를 변수 len에 저장한다.
  • for (int i = 0; i < s.length( ); i++) { } : for문을 사용해서 변수 i0부터 s.length( ) - 1까지 반복한다.
    • if ((len == 4 || len == 6) && Character.isDigit(s.charAt(i))) { answer = true } : if문을 통해 len4 또는 6이고 문자열 s각 문자가 숫자인지 확인한다. 조건을 만족하면 변수 answertrue를 저장한다.
    • else { answer = false } : 조건을 만족하지 않으면 변수 answerfalse를 저장한다.
      • break : false를 저장한 경우 더 이상의 반복이 필요 없으므로 바로 반복문을 종료한다.

Character.isDigit( )

  • 특정 문자가 숫자인지 여부를 확인하는 데 사용하는 메서드이다. 문자열의 각 문자가 숫자인지 검사할 때 유용하다.
// 간단한 예시

char c = '5';
if (Character.isDigit(c)) {
    System.out.println(c + "는 숫자입니다.");
} else {
    System.out.println(c + "는 숫자가 아닙니다.");
}