커맨드 라인 입력받기
커맨드 라인을 통해 입력받기
지금까지는 사용자로부터 입력을 받을 떄, Scanner를 이용했는데,
이번에는 다른 입력방법을 공부해 보도록 하겠다.
커맨드 라인을 통해서 입력받는 것인데,
커맨드 라인은 윈도우즈에서는 커맨드창을 의미한다.
[Ex5_7]
원래는 예제 5_7을 실행 할 때, 해당 클라스가 존재하는 디렉토리에서 커맨드창에 java를 치고 클래스이름을 쳐서 실행을 하는데,
이때, 그 뒤에다가 공백을 구분자로 해서 값들을 입력할 수 있다.
커맨드창에서 클래스이름으로 자바를 실행할 때, 그 뒤에 공백을 구분자로해서 값을 입력하면 매개변수의 개수가 3으로 잘 입력되어 나오는 것을 확인 할 수 있다.
클래스 뒤에 아무것도 적지않으면(입력값이 없으면) 입력값이 없어서 매개변수는 0개이다.
즉, null값이 들어가는 것이 아니라, 아무 내용없는 배열이 만들어져서 args로 넘어가는 것이다.
자바에서는 배열의 길이가 0인것이 가능하다.
"" 빈문자열은 길이가 0이다.
abc 123 "Hello world"는 각가 1개로 간주되어 총 3개이며,
문자열로 간주된다. 즉, 문자배열에 들어가 있는 것이다.
그리고 이 문자열이 아래의 코드의
public static void main(String[] args)
참조변수 args에 들어가는 것이다.
다시 정리하자면,
사용자가 입력한 값들을 가지고, 문자배열String[]을 만들고,
이것을 참조변수 args에 전달한다.
그러면, args가 메인메소드에 있는 변수니까 해당하는 메인메소드 내에서 이것을 사용할 수 있다.
인텔리제이에서 해당 코드를 실행하면
사진처럼 매개변수 입력이 안된채로 실행된다.
이것을 실행할 때, 커맨드차인에서 입력한 것처럼 값을주려면 어떻게 해야하냐면,
Edit configuration을 클릭하고,
이 부분에 입력하고 싶은 값들을 공백으로 구분하여 입력하면 된다.
이렇게 입력을 한 뒤,
실행을 하면, 입력한 값들이 문자열 배열로 바껴서 메인메서드로 넘어가기 때문에
잘 입력된 것을 확인 할 수 있다.
이렇게 입력받는 것의 장점은,
해당 코드파일의 코드를 바꾸지 않아도 된다는 것이다.
만약에 그 값을 이 안에서 바꾸게 되면 상황에 따라서 프로그램코드를 계속 바꿔야 한다.
근데, 밖에서 오는 값을 가지고 처리하도록 만들어 놓으면,
사용자가 다른 값을 넣어도, 프로그램은 바꾸지 않고 처리하는게 가능하도록 만들 수 있다.
그래서 이런 방법을 사용한다.