배열의 타입이 String인 경우에도 다음과 같이 선언할 수 있다.
String[] name = new String[3];
참조형 변수의 기본 값은 null이므로 각 요소의 값은 null로 초기화된다.
자료형 | 기본값 |
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];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";
String 배열은 선언한 길이의 0 <= 스트링 길이 <=n-1이며
길이는 0을 포함한 자연수로만 선언이 가능하다. 또한 중괄호{}를 사용해서 간단히 초기화할 수도 있다.
String[] name = new String[]{"Kim", "Park", "Yi"};
String[] name = { "Kim", "Park", "Yi"};
Char배열과 String클래스
String클래스는 char배열에 기능(메서드)를 추가한 것이다.
객체지향 언어에서는 데이터와 그에 관련된 기능(메서드)을 하나의 클래스에 묶어서 다룰 수 있게 한다.
char배열과 String클래스는 저장할 수 있는 문자의 수 외에 String객체는 읽을 수만 있을 뿐 내용을 변경할 수 없다.
변경 가능한 문자열을 다루려면, StringBuffer클래스를 사용하면 된다.
String클래스의 주요 메서드
메서드 | 설명 |
char charAt(int index) | 문자열에서 해당 위치(index)에 있는 문자를 반환한다. |
int length() | 문자열의 길이를 반환한다. |
String substring(int from, int to) | 문자열에서 해당 범위(from~to)에 있는 문자열을 반환한다. (to는 범위에 포함되지 않음) |
boolean equals(Object obj) | 문자열의 내용이 obj와 같은지 확인한다. 같으면 true, 다르면 false가 된다. |
char[]toCharArray() | 문자열을 문자배열(char[])로 변환해서 반환한다. |
charAt메서드는 문자열에서 지정된 index에 있는 한 문자를 가져온다.
인덱스index의 값으로 0부터 시작한다.
substring()은 문자열의 일부를 뽑아낼 수 있다. 주의할 것은 범위의 끝은 포함되지 않는다.
String str = "ABCDE";
char ch = str.charAt(3);
equals()는 문자열의 내용이 같은지 다른지 확인하는 데 사용하며, 대소문자를 구분한다.
만일 대소문자를 구분하지 않고 싶다면 equalsIgnoreCase()를 사용하면 된다.
String str = "abc";
if(str.equals("abc")) //str과 abc가 내용이 같은지 확인한다.
char배열과 String클래스의 변환
public class ArrayEx14 {
public static void main(String[] args) {
String src = "ABCDE";
for (int i = 0; i < src.length(); i++) {
char ch = src.charAt(i); // src의 i번째 문자를 ch에 저장
System.out.println("src.charAt(" + i + "):" + ch);
}
// String을 char[]로 변환
char[] chArr = src.toCharArray();
// char배열(char[])을 출력
System.out.println(chArr);
}
}
src.charAt(0):A
src.charAt(1):B
src.charAt(2):C
src.charAt(3):D
src.charAt(4):E
ABCDE
char배열을 String클래스로 변환하거나, 또는 그 반대로 해야 하는 경우가 있다.
그럴 때 위 예시대로 문장을 사용하면 된다.
커맨드 라인을 통해 입력받기
Scanner클래스의 nextLine()외에도 화면을 통해 사용자로부터 값을 입력받을 수 있는 간단한 방법이 있다.
커맨드 라인을 입력받는 방법이다.
프로그램을 실행할 때 클래스 이름 뒤에 공백 문자로 구분하여 여러 개의 문자열을 프로그램에 전달할 수 있다.
이클립스의 Run > Run Configurations나
window - 실행 - cmd로 해당 파일의 위치를 열고 java class이름 "abc"
방식으로 실행하면 된다.