본문 바로가기
Preparing Coding Test/Programmers L1

[Java] 문자열 다루기 기본

by weero 2020. 7. 21.

문제

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

 

코딩테스트 연습 - 문자열 다루기 기본

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

programmers.co.kr

 

 

참고

자료형 char

- char를 나타낼 수 있는 형태는 세가지이다.

   - 유니코드

   - ASCII 코드

   - 문자

char ch1 = '\u0061';
char ch2 = 97;
char ch3 = 'a';

System.out.println("unicode : " + ch1); //a
System.out.println("ASCII : " + ch2); //a
System.out.println("character : " + ch3); //a

 

ASCII 코드표 참고

https://ko.wikipedia.org/wiki/ASCII

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

 

parseInt()

- int Integer.parseInt(String);

- 문자열을 int형(기본형)으로 변환

   Byte.parseByte();

   Short.parseShort();

   Integer.parseInt();

   Long.parseLong();

   Float.parseFloat();

   Double.parseDouble();

   (char은 charAt())

- 이 때 함수의 매개변수로 들어오는 문자열이 숫자로만 이루어져 있어야 한다.

- 아닐 경우 NumberFormatException(숫자 형식 오류)이 발생하기  때문에 try-catch문으로 예외처리를 해야 한다.

 

 

코드 1 (ASCII 코드 이용)

class Solution {
    public boolean solution(String s) {        
        if(s.length()!=4 && s.length()!=6)
            return false;
        
        for(int i=0;i<s.length();i++){
            char letter = s.charAt(i);
            if(letter < '0' || letter > '9') return false;
        }
        return true;
    }
}

 

 

 

코드 2 (parseInt 이용)

class Solution {
  public boolean solution(String s) {
      if(s.length() == 4 || s.length() == 6){
          try{
              int x = Integer.parseInt(s);
              return true;
          } catch(NumberFormatException e){
              return false;
          }
      }
      else return false;
  }
}