자바에는 문자열과 관련된 함수가 많다. 그중에서 문자열과 관련된 메서드를 확인해보려고 합니다.
- substring
- split
- indexOf / lastIndexOf / charAt / length
- StringBuilder
1. substring : 문자열이 가지고 있는 index의 값으로 문자열을 자르는 메서드
String abc = "ABCD";
String substring1 = abc.substring(0);
String substring2 = abc.substring(1);
String substring3 = abc.substring(2);
String substring4 = abc.substring(3);
System.out.println("abc = " + abc); // abc = ABCD
System.out.println("substring1 = " + substring1); // substring1 = ABCD
System.out.println("substring2 = " + substring2); // substring2 = BCD
System.out.println("substring3 = " + substring3); // substring3 = CD
System.out.println("substring4 = " + substring4); // substring4 = D
String qwerty = "QWERTY";
String substring01 = qwerty.substring(0, 1);
String substring02 = qwerty.substring(0, 2);
String substring24 = qwerty.substring(2, 4);
String substring46 = qwerty.substring(4, 6);
String substring56 = qwerty.substring(5, 6);
System.out.println("qwerty = " + qwerty); // qwerty = QWERTY
System.out.println("substring01 = " + substring01); // substring01 = Q
System.out.println("substring02 = " + substring02); // substring02 = QW
System.out.println("substring24 = " + substring24); // substring24 = ER
System.out.println("substring46 = " + substring46); // substring46 = TY
System.out.println("substring56 = " + substring56); // substring56 = Y
기본적으로 subString은 기본적으로 각 글자의 index 값을 이용해서 해당 문자를 구하는 방식입니다.
- 기본적으로 index의 값이기 때문에 첫 글자의 index값은 0부터 시작합니다.
- substring의 파라미터가 1개뿐이라면 해당 위치의 글자부터 글자를 출력합니다.
- substring의 파라미터가 2개라면 (시작 위치, 마지막 위치) 만큼의 글자를 출력합니다.
2. Split : 지정한 문자를 기준으로 문자열을 잘라 배열로 반환하는 메서드
String arr = "";
for (int i = 0; i < 9; i++) {
arr += i + "#";
}
System.out.println("arr = " + arr); // arr = 0#1#2#3#4#5#6#7#8#
String[] arrNoLimit = arr.split("#");
System.out.println("arrNoLimit = " + Arrays.toString(arrNoLimit)); // arrNoLimit = [0, 1, 2, 3, 4, 5, 6, 7, 8]
String[] arr0 = arr.split("#", 0);
System.out.println("arrString0 = " + Arrays.toString(arr0)); // arrString0 = [0, 1, 2, 3, 4, 5, 6, 7, 8]
String[] arr1 = arr.split("#", 1);
System.out.println("arrString1 = " + Arrays.toString(arr1)); // arrString1 = [0#1#2#3#4#5#6#7#8#]
String[] arr2 = arr.split("#", 2);
System.out.println("arrString2 = " + Arrays.toString(arr2)); // arrString2 = [0, 1#2#3#4#5#6#7#8#]
String[] arr3 = arr.split("#", 3);
System.out.println("arrString3 = " + Arrays.toString(arr3)); // arrString3 = [0, 1, 2#3#4#5#6#7#8#]
String[] arr5 = arr.split("#", 5);
System.out.println("arrString5 = " + Arrays.toString(arr5)); // arrString5 = [0, 1, 2, 3, 4#5#6#7#8#]
String[] arr9 = arr.split("#", 9);
System.out.println("arrString9 = " + Arrays.toString(arr9)); // arrString9 = [0, 1, 2, 3, 4, 5, 6, 7, 8#]
String[] arr10 = arr.split("#", 10);
System.out.println("arrString10 = " + Arrays.toString(arr10)); // arrString10 = [0, 1, 2, 3, 4, 5, 6, 7, 8, ]
- split의 파라미터가 하나라면 해당 문자열을 기준으로 문자열을 잘라서 배열을 만듭니다.
- split의 파라미터가 두 개라면 해당 문자열을 기준으로 자르되 원하는 숫자만큼 자르게 됩니다.
- 두 번째 파라미터로 0을 대입하면 파라미터를 하나만 사용한 것과 동일한 결과를 출력합니다.
- 두 번째 파라미터가 분리시킬 개수보다 많다면 빈 공백 값 하나를 만들고 더 이상 출력하지 않습니다.
3. indexOf / lastIndexOf / charAt / length : 문자열 찾는 메서드
String abc = "abcdefghijkba";
System.out.println("abcLength = " + abc.length()); // 13
System.out.println("z = " + abc.indexOf("z")); // z = -1 ( 없는 데이터 )
System.out.println("a = " + abc.indexOf("a")); // a = 0
System.out.println("aa = " + abc.lastIndexOf("a")); // aa = 12
System.out.println("b = " + abc.indexOf("b")); // b = 1
System.out.println("bb = " + abc.lastIndexOf("b")); // bb = 11
System.out.println("first a = " + abc.charAt(0)); // a
System.out.println("last a = " + abc.charAt(12)); // a
System.out.println("first b = " + abc.charAt(1)); // b
System.out.println("last b = " + abc.charAt(11)); // b
- indexOf(String s) : 문자열의 첫 번째 index 값을 반환합니다.
- lastIndexOf(String s) : 문자열의 마지막 index값을 반환합니다.
- charAt(int index) : index값을 넣으면 해당 위치의 문자를 반환합니다.
- length() : 해당 문자열의 문자열의 개수를 반환합니다.
4. StringBuilder : 문자열 관련 객체로 메서드를 이용해서 문자열을 조작할 수 있다.
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("111"); // 문자열 추가
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 111
stringBuilder.insert(1, "222"); // 문자열 삽입
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 122211
stringBuilder.replace(3,5, "55"); // 문자열 치환
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 122551
String substring = stringBuilder.substring(3, 5); // 문자열 부분 추출
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 122551
System.out.println("######################### substring = " + substring); // substring = 55
stringBuilder.delete(3,5); // 문자열 삭제
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 1221
stringBuilder.deleteCharAt(stringBuilder.length() -1); // 해당 문자 하나 삭제
System.out.println("stringBuilder = " + stringBuilder); // stringBuilder = 122
// 가장 많이 사용하는 방식 중 하나로 마지막 문자만을 제거할 때 사용
stringBuilder.setLength(10); // 문자열 길이 조정
System.out.println("stringBuilder = " + stringBuilder); // 122 (빈공백 포함)
- append : 문자열의 마지막에 원하는 문자열을 추가하는 방식
- insert : 문자열 중 원하는 위치에 문자열을 추가하는 방식
- substring : 문자열 중 원하는 부분을 추출하는 방식. 다른 점은 StringBuilder 데이터를 변경하는 것은 아닙니다.
- delete : 문자열 중 원하는 만큼의 문자를 삭제하는 방식
- deleteCharAt : 문자열 중 원하는 위치의 문자 하나를 제거하는 방식
- setLength : 문자열 길이를 지정할 수 있습니다.
- 데이터의 길이가 길다면 길이만큼 데이터를 자르고, 데이터가 짧다면 공백을 추가합니다.
이외에도 StringUtils 등 다양한 문자열과 관련된 함수들이 존재합니다.
그중에서 가장 흔하게 볼 수 있는 함수만 정리해봤습니다.
도움이 되었다면 좋아요만 눌러주세요. 감사합니다.
'백엔드 > JAVA' 카테고리의 다른 글
[JAVA] 문자열 포함 여부 확인 메소드(startsWith, endsWith, contains) (0) | 2022.12.21 |
---|---|
[JAVA] 문자열 비교하는 방법과 NullPointerExcepion 해결법 (0) | 2022.10.20 |
[JAVA] 객체 자료형 이해하기 (0) | 2021.12.25 |
추상 클래스, 내부 클래스, 인터페이스 (0) | 2021.08.31 |
제어자 (0) | 2021.08.31 |
최근댓글