String 클래스는 문자열을 다루는 클래스로, java.lang 패키지에 포함되어 따로 import할 필요없이 바로 사용할 수 있다. String 클래스로 생성된 문자열은 변경할 수 없기에, 변경이 필요한 경우에는 새로운 객체를 생성해야 한다.
=> 변경이 자주 필요한 경우에 StringBilder 클래스 사용
String mesg ="Hellod World"; // 리터럴 방식
String mesg2 = new String("Hello"); // new 키워드 사용
리터럴 방식을 사용하는 것이 더 일반적이다. 리터럴 방식을 사용하면 String Constant Pool 에 저장되어 메모리 절약 가능
equals()
문자열 일치 여부를 확인할 때는 == 연산자가 아니라 equals()메서드를 사용한다.
mesg.equals("Hellod World") // true
indexOf(str)
: 문자열에서 가장 처음으로 발견한 str의 인덱스 위치를 반환한다.
mesg.indexOf("e") // 1
mesg.indexOf("d") // 5
lastIndexOf(str)
: 문자열의 가장 끝에서 부터 탐색하며, str의 인덱스 위치를 반환
mesg.lastIndexOf("d") // 11
contains(str)
: 문자열에 str을 포함하는지에 대한 여부를 boolean형으로 반환
mesg.contains("Hello") // true
toLowerCase()
: 소문자로 변경
mesg.toLowerCase() // hellod world
toUpperCase()
: 대문자로 변경
mesg.toUpperCase() // HELLOD WORLD
trim()
: 앞뒤 공백 제거
String spaced = " Java ";
System.out.println(spaced.trim()); // "Java"
concat(str)
: 문자열에 str을 연결시키는 메서드
mesg.concat("!!!!") // Hellod World!!!!
repeat(cnt)
: cnt만큼 문자열을 반복해주는 메서드
mesg.repeat(2) // Hellod WorldHellod World
replace(target, replacement)
: target을 replacement로 대체하는 메서드
mesg.replace("Hello", "world") // worldd World
mesg.replace("l", "100") // He100100od Wor100d
charAt(index)
: 특정 인덱스에 위치한 문자를 반환하는 메서드
mesg.charAt(3) // l
split(regex)
: 문자열을 구분자(regex)를 통해 쪼개고, 배열로 반환하는 메서드
String mesg ="10,20,30,40";
String [] arr = mesg.split(",");
// [10,20,30,40]
String.valueOf()
: 모든 기본 타입의 데이터를 문자열로 변환하는 메서드
String a = String.valueOf(100);
System.out.println(a);