String 클래스는 인덱스 0으로 시작하는 char의 배열과 같다. 이런 문자열을 자르기 위해서는 substring 함수와 split 함수가 있다. 예제로 알아보자.
start와 end를 가지고 문자열을 자른다.
// 1. 기본형
String str = "ABCDEFG";
str.substring(3); // DEFG
str.substring(3, 6); // DEF
// 2. 마지막 세 글자 자르기
String str = "ABCDEFG";
str.substring(str.length()-3, str.length()); // EFG
// 3. 특정 문자 이후의 문자열 자르기
String str = "ABCD/EFG";
str.substring(str.lastIndexOf("/")+1); // EFG
// 4. 특정 단어를 포함한 원하는 문장 자르기
String str = "캘리포니아의 도로는 뜨겁고 하늘은 맑고 거리는 위험하다.";
int target_num = str.indexOf("하늘");
// '고'가 앞에도 있으니 하늘로 시작하는 문장 뒤의 '고'가 위치하는 index 전까지의 원하는 부분을 발췌, 다시 특정 단어의 인덱스를 더하여 원하는 문장 발췌.
String result = str.substring(target_num,(str.substring(target_num).indexOf("고")+target_num));
System.out.println(result + "다."); // 하늘은 맑다.
특정 문자를 기준으로 문자열을 잘라서 배열에 넣는다.
// 1. 쉼표(",")로 문자열 잘라서 배열에 넣기
String str = "A,B,C,D,E";
String[] array = str.split(",");
for(String st : array) {
System.out.println(st);
}
// 결과값
// A
// B
// C
// D
// E
// 2. 공백(" ")으로 문자열 잘라서 배열에 넣기
String str = "관상이 참 좋으시네요";
String[] array = str.split(" ");
for(String st : array) {
System.out.println(st);
}
// 결과값
// 관상이
// 참
// 좋으시네요