본문 바로가기

Java 기본 문법 - 참조 서적 [이것이 자바다 - 한빛미디어]/3. 참조 타입

5. Java 자바 참조 타입 - 커맨드 라인 입력 (String[] args 용도)

main( ) 메소드의 매개값인 (String[] args) 의 용도

 

public static void main(String[] args) { . . . }

 

"java 클래스"로 프로그램을 실행하면 JVM은 길이가 0 인 String 배열을 먼저 생성하고,

main( ) 메소드를 호출할 때 매개값으로 전달한다.

 

 

만약 "java 클래스" 뒤에 공백으로 구분된 문자열 목록을 주고 실행하게 되면 (명령 프롬프트 상)

 

문자열 목록으로 구성된 String[ ]배열이 생성되고, main( ) 메소드를 호출할 때 매개값으로 전달된다.

 

커맨드 라인에서 args로 전달되는 과정

 

 

 

main( ) 메소드는 String[ ] args 매개 변수를 통해서

 

커맨드 라인에서 입력된 데이터의 수(배열의 길이), 입력된 데이터(배열의 항목 값) 을 알 수 있다.

 

 

ex) 프로그램 실행 시 2개의 문자열을 주지 않으면 강제 종료, 2 개의 문자열 주어지면 int로 바꾸어 덧셈 수행

 

public class MainStringArrayArgument {
	public static void main(String[] args) {
    	if(args.length != 2) {   // 입력된 데이터 개수가 2개가 아닌 경우
        	System.out.println("프로그램 사용법");
            System.out.println("Java MainStringArrayArgument num1 num2");  //사용법 출력 후
            System.exit(0);      // 강제 종료
        }
        
        String strNum1 = args[0];
        String strNum2 = args[1];
        
        int num1 = Integer.parseInt(strNum1);    // 문자열 정수로 변환
        int num2 = Integer.parseInt(strNum2);
        
        int result = num1 + num2;
        System.out.println(num1 + " + " + num2 + " = " + result);
    }
}

 

* Integer.parseInt( ) 메소드는 주어진 문자열을 int 형(정수)로 변환한다.

 

  변환이 불가한 문자열일 경우 NumberFormatException 실행 예외가 발생한다.

 

 

이클립스에서 프로그램 실행 시 매개값을 주어 실행하는 방법

 

[Run → Run Configurations..] 에서 Arguments 탭에서 매개값을 줄 수 있다.

 

 

위는 명령 프롬프트에서 

 

java MainStringArrayArgument 10 20

 

으로 실행하는 것과 동일하다.