Java String 클래스(자바 9~)
자바 9 버전부터 String 클래스 내부에서 char[]
타입을 사용하였으나 업데이트 이후 byte[]
타입을 사용한다.
String
private final byte[] value;
byte[] 이전에는 문자 char 타입 표현에는 2byte를 강제하였다. byte 타입으로 변경하게되면서, 영어 숫자 또한 1byte 표현(Laten-1 인코딩 1byte 이용)이 가능하고, UTF-16 인코딩은 2byte 문자 표현으로 필요한 바이트만 적재하여 메모리 효율적으로 사용한다.
String 메소드 종류
String 메소드는 다양하게 지원한다. 기능 활용에는 API 문서를 참고하여 사용한다.
length()
: 문자열 길이 반환charAt(int index)
: 특정 인덱스에 속한 문자 반환substring(int beginIndex, int endIndex)
: 문자열 일부 문자 반환indexOf(String str)
: 특정 문자열의 인덱스 값 반환toLowerCase()
: 문자열 소문자 변환toUpperCase()
: 문자열 대문자 반환trim()
: 문자열 양 끝 공백 제거concat(String str)
: 문자열 이어붙이기
참조형 그리고 String 클래스
String 클래스는 기본형 타입이 아닌 참조형 타입이다.
String 변수에는 계산 가능한 값이 아닌 참조 주소를 갖고 있고, 원래대로라면 더하기(+) 연산을 사용할 수 없다.
public class StringConcatMain {
public static void main(String[] args) {
String h = "hello";
String j = " java";
String result = h.concat(j)
System.out.println("result = " + result); // hello java
result = a + b;
System.out.println("result = " + result); // hello java
}
}
- 자바의 문자열을 이어 붙이려면 concat() 메소드로 사용해야한다.
- 문자열은 자주 사용되어 언어에서 더하기(+) 연산을 제공하게 되었다.