728x90

[조건]

  • 개인 정보를 비공개 하는 메소드 작성

[예시]

홍길동 -> 홍**

230607-1234567 -> 230607-*******

010-1234-5678 -> 010-1234-****

 

[차근 차근 생각해보기]

  1. 개인 정보 비공개 메소드 만들기
  2. String 타입의 정보(info)와, int 타입의 비공개 시작 위치(split)을 매개 변수로 넘겨주기
  3. info의 길이만큼 돌면서 split의 위치부터 *로 치환하기
  4. return 하여 출력하기
public static void main(String[] args){
    String name = "홍길동";
    String id = "230607-1234567";
    String phone = "010-1234-5678";

    System.out.println("이름 = " + hidden(name, 1);
    System.out.println("이름 = " + hidden(id, 7);
    System.out.println("이름 = " + hidden(phone, 9);
}
public static String hidden(String info, int split){
    String result = info.substring(0, split);
    String str = info.substring(split);

    for(int i = 0; i < str.length(); i++){
        result += "*";
    }
    return result;
}

 

[반성해야할 점]

for(int i = 0; i < str.length(); i++){
    str += "*";
}
  • 맨 처음에 위와 같은 코드로 작성했음 (str에 *을 더해줘야 한다고 생각)
  • str은 길동이 나오게 되는데 위와 같은 코드로 작성하게 되면 길동* -> 길동** 이런 식으로 반복되게 됨.
  • 때문에 result에 *을 더해주어야 str의 길이 만큼 *이 더해지게 된다.
  • 즉, 정리하자면 연산할 변수를 잘못 파악하였음😭
728x90

'Java' 카테고리의 다른 글

클래스 - 3  (0) 2023.06.07
클래스 - 2  (0) 2023.06.07
클래스 - 1  (0) 2023.06.07
배열 - 신발 사이즈 옵션 출력하기  (0) 2023.06.07
제어문 - 주차 정산 프로그램 만들기  (0) 2023.06.07

+ Recent posts