[Java] Ch05_2. String배열

토끼는 개발개발·2022년 1월 11일
0

Java

목록 보기
17/33
post-thumbnail

📌 Chapter05. 배열


✏️ 2. String 배열


2.1 String 배열의 선언과 생성

String[] name = new String[3];   // 3개의 문자열을 담을 수 있는 배열을 생성한다.

  • 3개의 문자열을 담을 수 있는 배열을 생성한다.
  • 3개의 String타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다.

▶ 변수 타입에 따른 기본값




2.2 String 배열의 초기화

초기화 역시 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[] 생략 가능

✨ 예제 1


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);

	}

}



2.3 char배열과 String클래스

String클래스는 char배열에 기능(메서드)을 추가한 것이다.

  • char배열과 String클래스의 중요한 차이는 String 객체(문자열)는 읽을 수만 있을 뿐 내용을 변경할 수 없다는 것이다.
 String str = "Java";
 str = str + "8"; // "Java8" 이라는 새로운 문자열이 str에 저장된다.
 System.out.println(str); 

위의 문장에서 문자열 str의 내용이 변경되는 것 같지만, 문자열은 변경할 수 없으므로 새로운 내용의 문자열이 생성된다.


▶ String클래스의 주요 메서드

// charAt메서드 

Strin str "ABCDE";
char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장.

▶ char배열과 String클래스의 변환

char[] chArr = {'A', 'B', 'C'};
String str = new String(chArr); // char배열 -> String
char[] tmp = str.toCharArray(); // String -> char배열



2.4 커맨드 라인을 통해 입력받기

커멘드 라인을 이용해 화면을 통해 사용자로부터 값을 입력받을 수 있다.
프로그램을 실행할 때 클래스 이름 뒤에 공백문자로 구분하여 여러 개의 문자열을 입력하면 문자열이 전달된다.

// 실행할 프로그램의 main메서드가 담긴 클래스의 이름이 MainTest라면
c:\jdk1.8\work\ch5>java MainTest abc 123

커맨드 라인을 통해 입력된 문자열은 String배열에 담겨서 MainTest 클래스의 main메서드의 매개변수(args)에 전달된다. 여기서 args[0]은 "abc"이고, args[1]은 "123"이 된다.




참고서적
자바의 정석(저자: 남궁성)


오늘의 한 줄

String 배열의 생성과 선언에 대해 알아봤다. String클래스 메서드 중 자주 쓰는건 외워둬야겠다.
자바 문법으로 배열을 다루는것이 조금씩 익숙해지고 있다. 다음 포스팅으로 배열 단원이 끝나는데 포스팅 외에도 더 많은 연습을 해야겠다. 연습한 코드는 모두 깃허브에 올려두고 있다!
다음 포스팅에선 다차원 배열에 대해 다뤄보겠다.

profile
하이 이것은 나의 깨지고 부서지는 기록들입니다

0개의 댓글