그동안의 예제를 작성하면서 기계적으로 작성했던 main() 메서드를 살펴보면 다음과 같이 배열이 입력매개변수의 형태를 띤다는 것을 알 수 있다.
public static void main(String[] args){
} // String[] : 여러 개의 String 객체를 묶어 저장하는 문자열 배열
즉 자바 코드를 실행하면 자바 가상 머신은 가장 먼저 main() 메서드를 실행하는데, 이때 개발자는 main()메서드를 실행하는 데 필요한 자료를 배열 타입으로 넘겨줄 수 있다. 그동안은 한 번도 데이터를 넘겨 준 적이 없으므로 아무런 데이터도 전달되지 않았을 것이다.
Run configurations 메뉴 클릭
그런 다음 Arguments에 매개 변숫값으로 안녕하세요 3 5.8을 입력한 후 Run 버튼을 클릭한다.
입력매개변수의 각 원소는 공백 문자로 구분되며 모든 원소는 입력매개변수가 String[]이므로 문자열(String)로 인식된다. 따라서 앞에서 입력한 입력매개변수에 따라 배열 args에는 다음과 같이 값이 전달된다.
String a = args[0];
String b = args[1];
String c = args[2];
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(b + 1);
System.out.println(c + 1);
int d = Integer.parseInt(b);
double e = Double.parseDouble(c);
System.out.println(d + 1);
System.out.println(e + 1);
결과
+) 타입 변환 메서드
문자열을 정수 또는 실수로 바꾸거나 정수 또는 실수를 문자열로 변환하는 데는 다음과 같은 메서드를 사용할 수 있다.
문자열 -> 정수 : Integer.parseInt(문자열)
문자열 -> 실수 : Double.parseDouble(문자열)
정수 -> 문자열 : String.valueOf(정수)
실수 -> 문자열 : String.valueOf(실수)
다음은 main() 메서드의 입력매개변수로 'abc 13 123 a'를 전달했을 때 입력매개변수로 전달된 String[] 타입의 참조 변수 args의 값을 읽는 예제다.
// args 배열의 길이 구하기
System.out.println(args.length);
System.out.println();
// 입력매개변수 출력 1
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
System.out.println();
//입력매개변수 출력 2
for(String s : args) {
System.out.println(s);
}
System.out.println();
결과