자바

JAVA 자바 배열 커맨드 라인 입력 main()메서드의 String args[]

알통몬_ 2017. 3. 12. 18:53
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

main() 메서드의 매개값인 String[] args가 왜 필요한 지에 대해 공부하겠습니다.

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

자바 클래스로 프로그램을 실행하면 JVM 은 길이가 0인 String 배열을 먼저 생성하고 main()메서드를 호출할 때 매개값으로 전달합니다.

String[] arg = {  };

         main() 메서드 호출 시 전달

public static void main(String[] args){ 

      .....

}

아래와 같이 자바 클래스 뒤에 공백으로 구분된 문자열 목록을 주고 실행하면 문자열 목록으로 구성된 String[] 배열이 생성되고  main()메소드를 호출할 때 매개값으로 전달됩니다.

java 클래스 문자열0 문자열1 문자열2 문자열3 ..... 문자열n-1


main()메소드는 String[] args 매개 변수를 통해서 커맨드 라인에서 입력된 데이터의 수(배열의 길이)와 입력된 데이터(배열의 항목 값)를 알 수 있게 됩니다. 아래 예제는 프로그램을 실행할 때 2개의 문자열을 주지 않으면 프로그램의 사용법을 출력하고 강제 종료하도록 만든 예제입니다. 만약 프로그램을 실행할 때 2개의 문자열이 정확히 입력되었다면 2개의 문자열을 int 타입 숫자로 변환하고 덧셈 연산을 수행합니다.


예제)

public class MainArgument {

public static void main(String[] args) {

if(args.length != 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);

}

 

}

2개의 값을 입력하지 않았을 경우


값을 주는 방법은 Run-> Run Configurations에서
위 처럼 값을 주면되는데, 값은 공백을 기준으로 구분합니다.

값을 주고 실행했을 경우 실행결과
 

예제에서 정수로 변환할 수 없는 문자열이 주어졌다면 NumberFormatException실행 예외 발생.


반응형