[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
'Programming Language > Java' 카테고리의 다른 글
[Java] 객체지향언어(2) | 변수와 메서드, 생성자 (1) | 2021.01.25 |
---|---|
[Java] 객체지향언어(1) | 클래스와 객체, 인스턴스, 객체 배열 (0) | 2021.01.24 |
[Java] 배열(1) | 배열 선언, 생성, 초기화, 인덱스, 배열 길이, 배열 출력, 배열 복사, Array.toString (2) | 2021.01.18 |
[백준_자바] 2739번 : 구구단 | printf, for문 (2) | 2021.01.16 |
[백준_자바] 10430번 : 나머지 | println, print, 런타임에러, 컴파일에러 (2) | 2021.01.16 |