String str = "Hello";
str += " World";
기존 문자열이 수정되는 것이 아니라 새로운 String 객체가 만들어진다.
문자열 길이 반환
String str = "Hello";
System.out.println(str.length()); // 5
시간복잡도 : O(1)
특정 위치 문자 반환
String str = "Hello";
System.out.println(str.charAt(1)); // e
시간복잡도 : O(1)
문자열 자르기
String str = "Hello";
System.out.println(str.substring(1)); // ello
System.out.println(str.substring(1,4)); // ell
문자의 위치 찾기
String str = "banana";
System.out.println(str.indexOf("a")); // 1
System.out.println(str.indexOf("z")); // -1
없으면 -1 반환
포함 여부 확인
String str = "Hello";
System.out.println(str.contains("ell")); // true
반환형 : boolean
문자열 비교
String a = "abc";
String b = "abc";
System.out.println(a.equals(b));
※ == 사용 금지
문자열 분리
String str = "A,B,C";
String[] arr = str.split(",");
결과
A
B
C
문자 변경
String str = "Hello";
System.out.println(str.replace("l","x"));
출력
Hexxo
대문자 변환
str.toUpperCase();
소문자 변환
str.toLowerCase();
StringBuilder sb = new StringBuilder();
또는
StringBuilder sb = new StringBuilder("Hello");
문자열 추가
sb.append("A");
sb.append("B");
결과
AB
문자 삽입
sb.insert(1,"X");
ABC
↓
AXBC
삭제
sb.delete(1,3);
한 글자 삭제
sb.deleteCharAt(2);
문자 변경
sb.replace(1,3,"AB");
문자열 뒤집기
sb.reverse();
코테에서 매우 자주 사용
특정 문자 변경
sb.setCharAt(2,'A');
특정 문자 조회
sb.charAt(1);
StringBuilder → String 변환
String result = sb.toString();
| String | StringBuilder |
|---|---|
| 불변 객체 | 가변 객체 |
| 수정 시 새 객체 생성 | 기존 객체 수정 |
| 수정이 많으면 느림 | 수정이 많아도 빠름 |
| 문자열 저장 | 문자열 수정 |