문자열 다루기 기본

김나영·2023년 6월 19일
0

프로그래머스

목록 보기
15/39

문제 : 문자열 다루기 기본

풀이

if(s.length() == 4 || s.length() == 6) {}
else {
  answer = false;
}
  • 문자열 길이 체크

  • 문자열 s의 길이가 4 또는 6인 경우 true

  • 그게 아니라면 false

for (int i = 0; i < s.length(); i++) {}
  • 문자열 s의 길이가 4 또는 6이라면 s의 길이만큼 for문을 사용하여 반복

  • i = 0부터 문자열의 길이만큼 반복

int check = (int)(s.charAt(i));
  • charAt()을 사용하여 s의 한 글자를 구한 뒤 int로 형변환 후 check에 저장
if (!(check >= 48 && check <= 57)) { // 0~9의 아스키코드 값 -> 48~57
  return false;
  • 48 ~ 57 사이에 들어 있는 값이 숫자로 된 값

  • 만약 check가 0의 아스키코드가 보다 크거나 같을 때 그리고 57보다 작거나 같을 때 false를 반환

전체 코드

class Solution {
    public boolean solution(String s) {
            boolean answer = true;
            if(s.length() == 4 || s.length() == 6) {
                for (int i = 0; i < s.length(); i++) {
                    int check = (int)(s.charAt(i));
                    if (!(check >= 48 && check <= 57)) { // 0~9의 아스키코드 값 -> 48~57
                        return false;
                    }
                }
            }else {
                answer = false;
            }
            return answer;
        }
    }

또 다른 풀이

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        if (s.length() != 4 && s.length() != 6) return false;
        for (int i = 0; i < s.length(); i++) {
            int check = (int)(s.charAt(i));
            if(s.charAt(i) < '0' || s.charAt(i) > '9') {
                return false;
            }
        }
        return answer;
    }
}
  • 문자열 길이 체크

  • 만약 문자열 s의 길이가 4가 아닐 때 그리고 6이 아닐 때는 false를 반환

  • s의 길이만큼 for문을 사용하여 반복

  • charAt()을 사용하여 s의 한 글자를 구한 뒤 int로 형변환 후 check에 저장

  • 숫자가 아닌지 체크

  • 문자열이 '0' 보다 작을 때 Or '9' 보다 클 때 false를 반환

0개의 댓글