[프로그래머스] - 핸드폰 번호 가리기

👀 문제설명

추가 예정



🎯 문제 접근 방식

추가 예정



🥑 핵심 Java 개념

String -> char[]

String str1 = "12345";
char[] arr1 = str1.toCharArray();
System.out.println(arr1);

char[] -> String

방법 1 : new String() 활용

public class MyClass {
    public static void main(String args[]) {
        char[] arr = {'h', 'e', 'l', 'l', 'o'};
        String str = new String(arr);
        System.out.println(str); // hello
    }
}

char[] 값을 String형 객체로 생성한다.

방법 2 - valueOf() 활용

public class MyClass {
    public static void main(String args[]) {
      char[] ary = {'a','b','c','d','e'};
      String arrayString = String.valueOf(ary);
      System.out.println(arrayString);
    }
}

String 클래스의 내장함수 valueOf()를 활용한다.

🧊 주의

String -> char != String -> char[]

String str = "안녕";
char ch1 = str.charAt(1); //1번째 인덱스의 값('녕') -> char

🏆 Java 소스코드

class Solution {
    public String solution(String phone_number) {
        String answer = ""; //뒷 4자리를 가린 최종 전화번호
        //String -> char[]
        char[] chNumber = phone_number.toCharArray();
        // 뒷 4자리를 제외한 번호 *로 변환
        for(int i=0;i<chNumber.length;i++){
            if(i >= (chNumber.length-4)){ //뒷 4자리부터는 숫자 그대로 저장
                continue; 
            }
            else{ //앞 부분 숫자들은 전부 *로 바꿔줌
                chNumber[i] = '*';
            }
        }
        //char[] -> String
        answer = new String(chNumber);
        return answer;
    }
}

🎨 후기

알고리즘 자체는 쉽게 떠올렸지만(진짜임) Java 문법이 헷갈렸다.
char, char[], String... 또한 String 클래스 및 객체 관련 유용한 메소드를 복습해야겠다.

좋은 웹페이지 즐겨찾기