ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA - 핸드폰 번호 가리기 (프로그래머스)
    카테고리 없음 2022. 8. 1. 21:15

    어디서 문제가 생겼나?

    프로그래머스 - 핸드폰 번호 가리기 문제.

    Char, String 의 내장함수가 잘 기억나지 않음.

     

     

     


    무엇을 배웠나?

     

    1. String의 길이는, String.length() 를 사용한다.

    2. String.substring(start_num, end-num->선택) 을 쓴다면, String 을 원하는 구간만큼 잘라낼 수 있다.

     

    타인의 풀이

    String은 Immutable(불변)이기 때문에, index로 접근하여 값을 바꿀 수 없다. 하지만 이런 경우 String.toCharArray() 를 쓴다면, char들로 이루어진 char[] 배열이 형성된다. 그 다음엔 ch[i] 인덱스로 접근하여 배열 내 요소의 값을 바꿔줄 수 있다.

     

    그 다음, 정답 출력을 위해 문자열 배열을, String.valueOf(ch)를 통해 다시 String 형태로 바꿔주었다. 다른 블로그를 찾아보니, new String(ch)를 해도 동일하게 문자열로 있다. 

     

    이분들처럼, regex(정규표현식)을 사용할 수도 있고. 이때는 String.replaceAll("catch", "바꾸고 싶은 문자")로 써주면 된다.

    ?= 는 전방탐색을 뜻하고, {}는 앞의 문자의 개수, '.'은 아무거나 한 글자를 뜻한다.

     

    이런 식으로 푼 사람들은, StringBuilder를 사용했는데, 그 이유는 String을 더하거나 빼고 싶은데 immutable 이기 때문에, 다른 형식으로 StringBuilder나 StringBuffer를 사용하는 것이다. 

    위에서는 String.toCharArray()를 통해 char[] 형태로 만들었지만, 여기서는 String.split("")를 통해, 한 char 씩 끊어서 일반 String[] 을 만들어주었다. 이럴 수도 있다.

     


    reference:

    https://hardlearner.tistory.com/288

    https://velog.io/@uhan2/java-String.toCharArray-%EC%82%AC%EC%9A%A9%EB%B2%95

Designed by Tistory.