CodeStates_BE_44/과제

자막 순화 프로그램 만들기

조화이트 2023. 2. 22. 19:19
728x90

💡 유튜브 자막 순화 프로그램 만들기

  1. 관리자 계정을 생성하여 주세요.( ID : admin / PW : 0000 )
  2. 해당 프로그램의 금칙어와 대체어를 설정해주세요.
  3. 입력된 자막에 금칙어가 존재하면 대체어로 바꿔 출력해주세요.

ID / Password 일치할 때

[시스템] 유튜브 계정의 아이디를 입력하세요 {Ex - admin} : admin
[시스템] 유튜브 계정의 비밀번호를 입력하세요{Ex - 0000} : 0000

[안내] 안녕하세요 admin님.
[안내] 유튜브 영상의 자막을 생성해 주세요.
아 열받아 시발 킹받네 미친 
========================================
[알림] 프로그램의 금칙어 리스트입니다.
[킹, 시발, 꺼저, 미친]
========================================
[알림] 자막 순화 프로그램 결과입니다.
>>> 아 열받아 사랑 열받네 희망
[안내] 프로그램을 종료합니다.

ID / Password 불일치 할 때

[시스템] 유튜브 계정의 아이디를 입력하세요 {Ex - admin} : admin
[시스템] 유튜브 계정의 비밀번호를 입력하세요{Ex - 0000} : 1234
[경고] 유튜브 계정의 아이디 및 비밀번호를 다시 확인해 주세요.

기능 구현

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class YoutubeSub {
  static final String adminId = "admin";
  static final String adminPassword = "0000";
  static String[] ban = new String[] {"킹", "시발", "꺼저", "미친"};
  static String[] replace = new String[] {"열", "사랑", "용기", "희망"};

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("[시스템] 유튜브 계정의 아이디를 입력하세요 {Ex - admin} : ");
    String id = br.readLine();
    System.out.print("[시스템] 유튜브 계정의 비밀번호를 입력하세요 {Ex - 0000} : ");
    String password = br.readLine();

    //id와 password가 일치하는지 확인
    if(id.equals(adminId)&&password.equals(adminPassword)) {
      System.out.println();
      System.out.println("[안내] 안녕하세요 "+id+"님.");
      System.out.println("[안내] 유튜브 영상의 자막을 생성해 주세요.");
      String subtitle = br.readLine();
      banListPrint();
      subtitle = changeSubtitle(subtitle);
      printSubtitle(subtitle);
    }

    else { // id와 password가 일치하지 않을 때 경고 문구 출력 및 종료
      System.out.println("[경고] 유튜브 계정의 아이디 및 비밀번호를 다시 확인해주세요.");
    }
  }

  //금칙어 리스트 출력하기
  static void banListPrint() {
    System.out.println("=".repeat(25));
    System.out.println("[알림] 프로그램의 금칙어 리스트입니다.");
    System.out.println(Arrays.toString(ban));
    System.out.println("=".repeat(25));
  }

  //자막 순화하기
  static String changeSubtitle (String subtitle) {
    for(int i=0; i<4; i++) {
      subtitle = subtitle.replace(ban[i],replace[i]);
    }
    return subtitle;
  }

  //순화된 자막 출력 및 종료 안내
  static void printSubtitle (String subtitle) {
    System.out.println("자막 순화 프로그램 결과입니다.");
    System.out.println(">>> "+subtitle);
    System.out.println("[안내] 프로그램을 종료합니다.");
  }
]

결과1

결과2

728x90
반응형