Programming Language/Java

[Java] 배열(2) | String 배열, 다차원 배열

성니 2021. 1. 24. 20:12

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492032&orderClick=LEa&Kc=

 

Java의 정석 - 교보문고

자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『Java의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를 처음 배우는 초보자들의 궁금한 점을 빠짐없이 담고 있

www.kyobobook.co.kr


[String 배열]

* String 배열 생성

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

참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화 된다.

 

자료형 기본값
boolean false
char '\u0000'
byte, short, int 0
long 0L
float 0.0f
double 0.0d 또는 0.0
참조형 변수 null

타입에 따른 변수의 기본값(default value)

 

 

* String 배열의 초기화

- 방법 1. 배열의 요소에 문자열을 지정

String[] name = new String[3];	// 길이가 3인 String 배열 생성
name[0] = "Park";
name[1] = "Baek";
name[2] = "Yeo";

 

 

- 방법 2. 괄호{}를 사용해서 초기화

String[] name = new String[] {"Park", "Baek", "Yeo"};
String[] name = {"Park", "Baek", "Yeo"};	// new String[] 생략 가능

특별히 String 클래스만 큰따옴표만으로 간략하게 표현하는 것이 허용된다.(new 연산자 생략 가능)

 

 

* char 배열과 String 클래스

String 클래스가 char 배열에 여러가지 기능(메서드=함수)을 추가하여 확장한 것이기 때문에, char 배열보다는 String 클래스를 사용하는 것이 문자열을 다루기에는 더 편리하다.

 

char 배열과 String 클래스의 한가지 중요한 차이점은, String 객체(문자열)는 읽을 수만 있을 뿐 내용을 변경할 수 없다는 것이다.

 

- String 클래스의 주요 메서드

메서드 설명
char charAt (int index) 문자열에서 해당 위치(index)에 있는 문자를 반환
int length() 문자열의 길이를 반환
String substring (int form, int to) 문자열에서 해당 범위(from~to)에 있는 문자열을 반환
to는 범위에 포함되지 않음 : 1~4면 index 1에서 3까지만 반환
boolean equals (Object obj) 문자열의 내용이 obj와 같은지 확인해서
같으면 true, 다르면 false를 반환. 대소문자 구분
char[] toCharArray() 문자열을 문자배열(char[])로 변환해서 반환

 

// CharAt
String str = "ABCDE";
char ch = str.charAt(4);	// 문자열 str의 5번째 문자 E를 ch에 저장함

// substring
String str = "012345";
String tmp = str.substring(1,5);	// str에서 index 범위 1~5의 문자들을 반환
System.out.println(tmp);	// "1234" 출력

//equals
String str = "abc";
if (str.equals("abc"))
	System.out.println("Yes!");

equals()는 대소문자를 구분하는데, 대소문자를 구분하지 않으려면 equalsIgnoreCase()를 사용한다.

 

 

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

char 배열과 String 배열로, 또는 그 반대로 변환해야 할 때 다음의 코드를 사용하면 된다.

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

 

 


[다차원 배열]

* 2차원 배열의 선언과 인덱스

선언 방법 선언 예
타입[][] 변수이름; int [][] score;
타입 변수이름[][]; int score[][];
타입[] 변수이름[]; int[] score[];

2차원 배열의 경우, int score[2][3]; 으로 생성했다면 가로 2, 세로 3 크기의 테이블이 생성된 거라고 생각하면 쉽다. 2X3 = 6이므로 score 배열에는 총 6개의 int 값을 저장할 수 있는 셈이다.

 

 

* 2차원 배열의 초기화 : 이중 for문

for (int i = 0; i < score.length; i++) {
	for (int j = 0; j < score[i].length; j++) {
		score[i][j] = 10;
	}
}

score 배열의 모든 요소를 10으로 초기화하는 예제이다.

 

 


[가변 배열]

* 가변 배열의 생성

int[][] score = new int[2][3];	// 2X3 크기의 2차원 배열 생성

2차원 배열을 생성하는 기본적인 코드

 

int[][] score = new int[2][];
score[0] = new int[3];
score[1] = new int[3];

기본적인 코드를 이렇게도 쓸 수 있다. 테이블 형태의 고정적인 배열을 생성하는 방법이다.

 

int[][] score = new int[2][];
score[0] = new int[5];
score[1] = new int[4];

이런식으로 코드를 작성하면 각 행마다 다른 길이의 배열을 생성하는 것이 가능하다.

728x90