ssung_끄적끄적/JAVA_끄적

substring vs split 문자열 자르기

ssungcohol 2023. 7. 21. 16:00

String - char를 여러개 붙여놓은 효과를 주기 때문에 String 클래스의 해당 index 값은 다음과 같다.

즉, String = char의 배열이라고 생각해도 될 것 같다.

 

String : A B C D E F G

index : 0  1  2  3  4  5  6


substring - 사용법

 

// 사용법

String.substring(start) // 문자열 start 위치부터 끝까지 문자열 자르기

String.substring(start, end) // 문자열 start 위치부터 end전까지 문자열 발췌

// EX

String str = "ABCDEFG"
// A=0, B=1, C=2, D=3, E=4, F=5, G=6 의 index를 가짐

str.substring(3); // 결과값 = DEFG

str.substring(3, 6);  // 결과값 = DEF

 

활용예제

// 1. 마지막 3글자 자르기

String str = "ABCDEFG";
String result = str.substring(str.length() - 3, str.length());
System.out.println(result);
// 결과값 = EFG

// 2. 특정문자 이후의 문자열 제거
String str = "ABCD/EFGH";
String result = str.substring(str.lastIndexof("/") + 1);
System.out.println(result);
// 결과값 = DEFGH

// 3. 특정단어(부분)만 자르기
String str = "바나나 : 1000원, 사과 : 2000원, 배 : 3000원";
String target = "사과";
int target_num = str.indexOf(target);
String result = str.substring(target_num, (str.substring(target_num).indexOf("원") + target_num_;
System.out.println(result + "원");
// 결과값 : 사과 : 2000원

split

 - 특정문자를 기준으로 문자열을 잘라서 배열에 넣어주는 split 

 - 일부러 DB에 +# 이렇게 문장 끝에 특수기호를 넣은 후 나중에 DB에서 값을 꺼낼때는 #으로 split하여 사용하는 등
활용도가 아주 높은 함수

 

split 사용법

 

// 사용법
문자열배열 = 대상문자열.split("기준문자");

// EX
String str = "";

for (int i = 0; i < 5; i++) {
	str += i + "#";
}

String[] array = str.split("#");

for (int i = 0; i < array.length; i++) {
	System.out.println(array[i]);
}

//결과값
// array[0] = 1
// array[1] = 2
// array[2] = 3
// array[3] = 4

 

활용예제

 

// 1. 쉼표로 문자열 잘라서 배열에 넣기

String str = "A,B,C,D";
String[] array = str.split(",");

// 출력
for (int i = 0; i < array.length; i++) {
	System.out.println(array[i]);
}

// 결과값
// array[0] = A
// array[1] = B
// array[2] = C
// array[3] = D


// 2. 공백 (" ")으로 문자열 잘라서 배열에 넣기
String str = "동해물과 백두산이 마르고 닳도록 하나님이 보우하사 우리나라 만세";
String[] array = str.split(" ");

//출력
for (int i = 0; i < array.length; i++) {
	System.out.println(array[i]);
}

// 결과값
// array[0] = 동해물과
// array[1] = 백두산이
// array[2] = 마르고
// array[3] = 닳도록
// array[4] = 하나님이
// array[5] = 보우하사
// array[6] = 우리나라
// array[7] = 만세
728x90