배열 (Array) - String배열, String클래스, 2차원 배열
| String 배열
▶ 변수의 타입에 따른 기본 값
자료형 | 기본값 |
boolean | false |
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 | null |
▶ String 배열의 선언과 생성
String[] name = new String[3];
3개의 문자열 데이터를 담을 수 있는 배열 name 생성
▶ String 배열의 초기화
String[] name = new String[3]; // 길이가 3인 Stirng 배열 생성
name[0] = "Kim";
name[1] = "Park";
name[2] = "Lee";
// 괄호{ }를 사용해 간단히 초기화할 수 있다.
String[] name = new String[]{"Kim", "Park", "Lee"};
// new String[]을 생략할 수 있다.
String[] name = {"Kim", "Park", "Lee"};
| String 클래스
문자열은 '문자를 연이어 늘어놓은 것'을 의미하므로 문자배열인 char배열과 같은 뜻이다. 하지만 자바에서 char배열 대신 String클래스를 이용해서 문자열을 처리하는 이유는 String클래스가 char배열에 기능(메서드)을 추가한 것이기 때문이다.
char배열과 String 클래스의 중요한 차이는 String객체(문자열)는 읽을 수만 있을 뿐 내용을 변경할 수 없다는 점이다.
▶ String 클래스의 주요 메서드
메서드 | 설명 |
char charAt(int index) | 문자열에서 index에 있는 문자를 반환 |
int length( ) | 문자열의 길이를 반환 |
String substring(int from, int to) | 문자열에서 해당 범위(form~to)의 문자열을 반환 (to 포함 X) |
boolean equals( ) | 문자열의 내용이 같은지 확인 (같으면 true 다르면 false) |
char[] toCharArray( ) | 문자열을 문자배열(char[ ])로 변환해서 반환 |
| 2차원 배열
2차원 배열을 선언하는 방법은 1차원 배열과 같다. 다만 대괄호 [ ]가 하나 더 들어갈 뿐이다. 배열의 차원의 제한은 없지만 주로 1차원과 2차원 배열이 많이 사용되며 2차원 배열은 주로 테이블 형태의 데이터를 담는 데 사용된다.
▶ 2차원 배열 선언 방법
선언 방법 | 예 |
타입[ ][ ] 변수이름; | int[ ][ ] score; |
타입 변수이름[ ][ ]; | int score[ ][ ]; |
타입[ ] 변수이름[ ]; | int[ ] score[ ]; |
▶ 2차원 배열의 인덱스
행 / 열 | 0 | 1 | 2 |
0 | number[0][0] | number[0][1] | number[0][2] |
1 | number[1][0] | number[1][1] | number[1][2] |
2 | number[2][0] | number[2][1] | number[2][2] |
3 | number[3][0] | number[3][1] | number[3][2] |
int[ ][ ] number = new int[4][3];
2차원 배열의 경우에는 행과 열로 구성되어 있다. 행과 열 또한 배열이기 때문에 index값은 0부터 시작한다.
int[ ][ ] number = new int[4][3]; → int 타입인 4행 3열의 2차원 배열을 생성하라는 의미
행 인덱스(row index) - 0 ~ 행의 길이-1
열 인덱스(columm index) - 0 ~ 열의 길이-1
▶ 2차원 배열의 초기화
2차원 배열도 괄호{ }를 사용해서 생성과 초기화를 동시에 할 수 있다. 하지만 1차원 배열보다 괄호{ }를 한번 더 써서 행별로 구분해 준다.
int[][] arr = new int[][]{ {1, 2, 3}, {4, 5, 6} };
int[][] arr = { {1, 2, 3}, {4, 5, 6} }; // new int[][] 생략
크기가 작은 배열은 간단히 한 줄로 써주는 것이 좋지만 가능하면 행별로 줄 바꿈을 해주는 것이 보고 이해하기 쉽다.
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
};
for(int i = 0; i < arr.length; i++) { // 1번
for(int j = 0; j < arr[i].length; j++) { // 2번
System.out.print("arr[" + i + "][" + j + "] = " + arr[i][j] + "\t");
}
System.out.println();
}
1번 arr.length → 배열.length를 하면 행의 길이가 반환된다.
2번 arr[].length → 배열[index].length는 열의 길이가 반환된다.
'Programming > Java' 카테고리의 다른 글
[Java] 객체지향 언어, 클래스와 객체, 인스턴스, 객체의 생성과 사용, 객체 배열 (0) | 2020.11.11 |
---|---|
[Java] 조건문/반복문을 이용해 배수가 아닌 수 찾기 (0) | 2020.11.10 |
[Java] 배열(Array) - 선언과 생성, 인덱스, 길이(.length), 초기화, 출력 (0) | 2020.04.19 |
[Java] 배열의 활용 (총합과 평균, 최대값과 최소값, 섞기) (0) | 2020.04.18 |
[Java] for문(반복문)을 이용해 별찍기 (1) | 2020.04.16 |