[Java1000제] 콘솔 만들기 1 - 도스창 따라하기

유콩·2021년 12월 8일
0

문제

이번 문제는 도스창과 같은 콘솔어플리케이션을 만들어보는 것입니다. 도스창 처럼 명령어를 입력하면

명령어가 실행된 결과를 화면에 보여주는 텍스트 기반의 어플리케이션입니다.(text-based application)

[문제1] 예제를 실행하면 '>>'와 같은 프롬프트가 나타나서 사용자의 입력을 기다리고, 사용자가 입력한 내용을 화면에 출력한다. 만일 사용자가 'q' 또는 'Q'를 입력하면 프로그램을 종료한다. 다음의 예제를 완성하세요.

[예제ConsoleEx1.java]

import java.util.*;

class ConsoleEx1 {
      public static void main(String[] args) {
            while(true) {
                  String prompt = ">>";
                  System.out.print(prompt); 
                  

                  /*

                     다음과 같은 내용의 코드를 넣으세요.                  

                     1. 화면으로부터 라인단위로 입력받는다.  - java.util.Scanner클래스 사용
                     2. q 또는 Q를 입력하면 실행종료한다.

                  */


             } // while(true)
      } // main
} // class

[실행결과]

>>hello
hello
>>help
help
>>ok
ok
>>q

https://cafe.naver.com/javachobostudy/24687

나의 풀이

이전 예제에서 배운 equalsIgnoreCase()를 이용하여 간단하게 해결하였다.

import java.util.Scanner;

class ConsoleEx1 {
    public static void main(String[] args) {
        while(true) {
            String prompt = ">> ";
            System.out.print(prompt);

            Scanner scanner = new Scanner(System.in);
            String input = scanner.nextLine();
            System.out.println(input);

            if (input.equalsIgnoreCase("Q")) {
                break;
            }
        }
    }
}

저자 풀이

답을 알기 위해 2번 문제를 가져왔다.

import java.util.*;

class ConsoleEx2 {
      static String[] argArr;       // 입력한 매개변수를 담기위한 문자열배열

      public static void main(String[] args) {
            while(true) {
                  String prompt = ">>";
                  System.out.print(prompt);
                 
                  // 화면으로부터 라인단위로 입력받는다.
                  Scanner s = new Scanner(System.in);
                  String input = s.nextLine();


 

                 /*

                     다음의 코드를 완성하세요.

                     1. 입력받은 값에서 앞뒤 공백을 제거한다. (String클래스의 trim()사용)
                     2. 입력받은 명령라인의 내용을 공백을 구분자로 해서 나눠서 argArr에 담는다.

                         String클래스의 split(String regex)를 사용 - 공백이 하나 이상인 경우에도 하나의 공백으로 간주해야함

                         실행결과를 주의깊게 확인하세요.

                 */

                  if(input.equalsIgnoreCase("Q")) { // q 또는 Q를 입력하면 실행종료한다.
                        System.exit(0);
                  } else {
                        for(int i=0; i < argArr.length;i++) {
                              System.out.println(argArr[i]);
                        }
                        /* 위의 코드를 향상된 for문으로 변경하면 다음과 같다.
                        for(String arg : argArr) {
                              System.out.println(arg);                                                      
                        }
                        */
                  }
            } // while(true)
      } // main
} // class

0개의 댓글

관련 채용 정보