자바에서 대표적으로 문자를 다룰 수 있는 타입은 char, String이 있다.
package lang.string;
public class CharArrayMain {
public static void main(String[] args) {
char[] charArray = new char[]{'h', 'e', 'l', 'l', 'o'};
System.out.println(charArray);
String str = "hello";
System.out.println(str);
}
}
기본형인 char는 문자 하나를 다룰 때 사용한다.
하지만 char[]처럼 직접 다루는 방법은 매우 불편하기 때문에 자바는 문자열을 편리하게 다룰 수 있는 String을 제공하고 있다.
package lang.string;
public class StringBaiscMain {
public static void main(String[] args) {
String str1 = "hello";
String str2 = new String("hello");
System.out.println("str1 = " + str1);
System.out.println("str2 = " + str2);
}
}
String은 클래스다.
따라서 변수에 String 인스턴스가 들어갈 수 있다.
하지만 문자열은 매우 자주 사용한다.
그래서 편의상 쌍따옴표로 문자열을 감싸면 자바는 문자열 리터럴을 String 객체로 처리한다.
public final class String {
//문자열 보관
private final char[] value;// 자바 9 이전 private final byte[] value;// 자바 9 이후
//여러 메서드
public String concat(String str) {...} public int length() {...}
...
}
String도 클래스이기 때문에 속성과 메서드로 구성이 되어 있다.
private final char[] value;
String 클래스는 개발자가 직접 다루기 힘든 char[]을 내부에 감추고 String 클래스를 사용하는 개발자가 편리하게 문자열을 다룰 수 있도록 다양한 기능을 제공한다.
기능은 방대하므로 필요한 기능이 있으면 찾아보는 것이 좋다.