String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성한다.
- 3개의 문자열을 담을 수 있는 배열을 생성한다.
- 3개의 String타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다.
초기화 역시 int배열과 동일한 방법으로 한다. 아래와 같이 배열의 각 요소에 문자열을 지정하면 된다.
String[] name = new String[3]; // 길이가 3인 String 배열을 생성 name[0] = "Kim"; name[1] = "Park"; name[2] = "Yi";
다음과 같이 간단하게 쓸 수 있다.
String[] name = new String[]{"Kim", "Park", "Yi"} String[] name = {"Kim", "Park", "Yi} // new String[] 생략 가능
public class ArrayEx5 {
public static void main(String[] args) {
String[] names = {"Kim", "Park", "Yi"};
for(int i=0; i<names.length; i++)
System.out.println("names["+i+"]: "+names[i]);
String tmp = names[2]; // 배열 names의 세 번째 요소를 tmp에 저장
System.out.println("tmp:"+tmp);
names[0] = "Yu"; // 배열 names의 첫 번째 요소를 "Yu"로 변경
for (String str: names) //향상된 for문
System.out.println(str);
}
}
String클래스는 char배열에 기능(메서드)을 추가한 것이다.
- char배열과 String클래스의 중요한 차이는 String 객체(문자열)는 읽을 수만 있을 뿐 내용을 변경할 수 없다는 것이다.
String str = "Java"; str = str + "8"; // "Java8" 이라는 새로운 문자열이 str에 저장된다. System.out.println(str);
위의 문장에서 문자열 str의 내용이 변경되는 것 같지만, 문자열은 변경할 수 없으므로 새로운 내용의 문자열이 생성된다.
// charAt메서드
Strin str "ABCDE";
char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장.
char[] chArr = {'A', 'B', 'C'};
String str = new String(chArr); // char배열 -> String
char[] tmp = str.toCharArray(); // String -> char배열
커멘드 라인을 이용해 화면을 통해 사용자로부터 값을 입력받을 수 있다.
프로그램을 실행할 때 클래스 이름 뒤에 공백문자로 구분하여 여러 개의 문자열을 입력하면 문자열이 전달된다.// 실행할 프로그램의 main메서드가 담긴 클래스의 이름이 MainTest라면 c:\jdk1.8\work\ch5>java MainTest abc 123
커맨드 라인을 통해 입력된 문자열은 String배열에 담겨서 MainTest 클래스의 main메서드의 매개변수(args)에 전달된다. 여기서 args[0]은 "abc"이고, args[1]은 "123"이 된다.
참고서적
자바의 정석(저자: 남궁성)
String 배열의 생성과 선언에 대해 알아봤다. String클래스 메서드 중 자주 쓰는건 외워둬야겠다.
자바 문법으로 배열을 다루는것이 조금씩 익숙해지고 있다. 다음 포스팅으로 배열 단원이 끝나는데 포스팅 외에도 더 많은 연습을 해야겠다. 연습한 코드는 모두 깃허브에 올려두고 있다!
다음 포스팅에선 다차원 배열에 대해 다뤄보겠다.