[Java] int to char 형변환 / String 인덱스 찾기(indexOf)

epiphany·2022년 10월 26일
0

Programmers School

목록 보기
14/22
post-thumbnail

🛫 Programmers School에서 숫자 찾기 문제 풀이 과정에서 알게 된 개념 정리

📑 코드

class Solution {
    public int solution(int num, int k) {
        int answer = -1;
        String s = Integer.toString(num);
        if (0<num && num<1000000 && 0<=k && k<10){
            answer = s.indexOf((char)k+'0');
            if (answer != -1) answer++;
        }
        return answer;
    }
}

🧩 형변환

int형을 char형으로 변환하기 위해 아래와 같이 코드 작성하였지만 변환되지 않음

answer = s.indexOf((char)k);

위와 같이 작성할 경우 해당 k값에 맞는 ASCII코드 값으로 변환되고 있었음
int형에서 숫자는 그대로 유지하되 char형으로 변환하기 위해서는 해당 숫자의 ASCII값으로 변경되도록 하는 작업 필요

answer = s.indexOf((char)k+'0');
answer = s.indexOf((char)k+48);

문자 '0'은 10진수 값으로 48을 의미하기에 '0'을 더해주서나 48을 더해주면 원하는 결과 도출 가능하다.

int k = 7;
System.out.println((char)k+'0'); // 55
System.out.println((char)k+48);  // 55

System.out.println('7'==((char)k+'0'));  //true
System.out.println('7'==((char)k));      //false

🧩 indexOf()

문자열의 인덱스 값을 찾아주는 메서드

  • 자세한 부분은 참고에 있는 링크 확인

사용 방법

String s = 'abc';
System.out.println(s.indexOf('a'));

// output: 0

📚 참고

0개의 댓글