티스토리 뷰

programmers

[프로그래머스] 외계행성의 나이

대장형아 2023. 11. 20. 21:45

 

자바 풀이

class Solution {
    public String solution(int age) {
        String answer = "";
        String ageStr=  Integer.toString(age);
        
        for(int i=0; i<ageStr.length(); i++){
            answer += (char)(ageStr.charAt(i)+49);
        }
           
        return answer;
    }
}

 

 

Integer.toString()

int 를 string 으로 변환하는 방법 중 하나이다. 다른 방법으로는 String.valueOf()가 있다. 

 

차이점

입력된 문자열이 null 이라면 두 함수의 대응점이 다르다. 

Integer.toString() 은 "Null PointerException" 오류가 발생하고 String.valueOf() 는 "null"이라는 문자열로 처리한다. 

null을 오류가 아닌 문자열로 처리해야 할때 String.valueOf() 를 사용하고 이외에는 Integer.toString()을 추천한다고 함.

 

charAt() 메소드 

자바에서는 문자열에서 특정 위치의 문자를 얻고 싶다면 charAt() 메소드를 이용 할 수 있다. 

이 메소드는 매개값으로 주어진 인덱스의 문자를 리턴한다.

여기서 인덱스란 0에서부터 '문자열의 길이-1' 까지의 번호를 말한다.

 

예를들어, 

String subject = "자바 프로그래밍"
char charValue = subject.charAt(3);

 

0 1 2 3 4 5 6 7
 

 

"자바 프로그래밍" 이라는 문자열의 charAt(3)은 3번 인덱스에 있는 '프' 가 해당되는 것이다. 

 

아스키 코드

 

0의 아스키 코드는 48이고, a는 97이다

49 만큼 차이가 나는 것을 확인 할 수 있다. 

 

charAt() 메소드에 i 값(String으로 변환한 age)을 넣고

해당 문자에 49를 더해서 (char)형으로 형을 변환하여 출력하면

a 부터 j까지 리턴되는 것이다. 

 

 

 

 

 

 

 

---------

+ 다른사람들 풀이에 스트림으로 간z 나게 풀어져 있는 것을 보았다. 지금 공부중인데 노력해야겠음,,!

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
최근에 올라온 글
Total
Today
Yesterday