초록꼬마의 devlog
article thumbnail

2021.11.16(화)

🌱 String클래스 실습 문제

영어 알파벳으로만 이루어진 문자열(띄어쓰기 포함)을 입력받은 뒤, 각 단어의 첫 글자만 대문자로 변환하는 프로그램을 만드시오.

  • Run 클래스

    public class ToUpperCaseRun {
      public static void main(String[] args) {
          ToUpperCaseView tucv = new ToUpperCaseView();
      }
    }
  • View 클래스

    public class ToUpperCaseView {    
      private ToUpperCaseController tucc = new ToUpperCaseController();
      private String userStr = "";
      private String upperStr = "";
      private Scanner sc = new Scanner(System.in);
    
      public ToUpperCaseView() {
          toUpperCaseMainMenu();
      }
    
      public void toUpperCaseMainMenu() {        
          while (true) { // 사용자가 숫자나 한글을 입력한 경우 다시 입력받고 싶음
              System.out.print("영어를 입력하세요(띄어쓰기 포함) > ");
              userStr = sc.nextLine().toLowerCase();
              char[] chArr = userStr.toCharArray();
          }
      }
    }
  • Controller 클래스

    public class ToUpperCaseController {    
      private String userStr = "";
      private String upperStr = "";
      private Scanner sc = new Scanner(System.in);
    
      public void toUpperCase() {        
          while (true) { // 사용자가 숫자나 한글을 입력한 경우 다시 입력받고 싶음            
              System.out.print("영어를 입력하세요(띄어쓰기 포함) > ");
              userStr = sc.nextLine().toLowerCase();
              char[] chArr = userStr.toCharArray();
    
              for (int i = 0; i < chArr.length; i++) {
                  if (i == 0) { // 입력받은 문자열의 첫번째 글자는 무조건 대문자로 만듦
                      chArr[i] = (char) (userStr.charAt(i) - 32);
                  } else if (chArr[i - 1] == ' ') { // 앞 글자가 ' '인 경우 해당 글자는 대문자로 바꿈
                      chArr[i] = (char) (userStr.charAt(i) - 32);
    //                    chArr[i] = Character.toUpperCase(userStr.charAt(i))
                  }
              }
    
              System.out.println(String.valueOf(chArr));            
          } // while문 영역 끝            
      }
    }

✔️ 보완할 점

  • 코드 깔끔하게 바꿔보기
  • 더 다양한 String 메소드 사용해보기
  • 부가 기능 구현(사용자가 숫자나 한글을 입력한 경우 다시 입력받기 등)
  • 객체지향 구조 구현

📗 homework:

  1. Java API 중 1가지(단, Calendar, GregorianCalendar 제외) 찾아서 나의 기존 작업물에 사용해보기 + 주요 내용 정리(자주 쓰이는 메소드 설명 등)
  2. 객체배열 실습
  3. double형 사칙연산 관련 문제 해결