StringBuilder
더하기 연산을 통해 새로운 문자열을 만들면 문자의 배열을 복사하면서, 새로운 문자열 객체가 생성된다.
길이가 N인 새로운 문자열을 만드는데 O(N)이 소요된다.
StringBuilder는 새로운 문자열을 만들지 않고 내부 배열에서 직접 수정한다. 문자열의 길이가 너무 길어지면 배열 크기를 늘려주기 때문에 O(N)의 시간 복잡도를 가지나 이는 가끔 일어나는 작업이기 때문에 기대 시간 복잡도는 O(1)이 된다.
메서드 | 역할 | 시간 복잡도 |
StringBuilder.toString() | 구성한 문자열을 String 형식으로 반환한다. | O(N) |
StringBuilder.append(char c) | 문자 c를 문자열 끝에 이어 붙인다. | O(1) |
StringBuilder.length() | 구성한 문자열 길이를 반환한다. | O(1) |
StringBuilder.reverse() | 구성한 문자열을 뒤집는다. | O(N) |
String
메서드 | return type | 내용 |
equals(String other) | boolean | 문자열이 other와 같은 문자열을 담고 있는지 반환 |
length() | int | 문자열 길이를 반환 |
substring(int beingIndex, int endIndex) | String | 문자열의 beginIndex부터 endIndex까지 잘라서 반환 |
toUpperCase() | String | 모든 알파벳이 대문자로 변환된 문자열을 반환 |
toLowerCase() | String | 모든 알파벳이 소문자로 변환된 문자열을 반환 |
포함 여부 검사 | ||
contains(CharSequence s) | boolean | 문자열 s가 원본 문자열에 있는지 검사 |
startsWith(String prefix) | boolean | 원본 문자열이 전달받은 문자열로 시작하는지 검사 |
endsWith(String suffix) | boolean | 원본 문자열이 전달받은 문자열로 끝나는지 검사 |
indexOf(String str) | int | 전달받은 문자열이 원본 문자열의 몇번째 인덱스에 있는지 검사 |
치환 | ||
replace(char oldChar, char newChar) | String | 원본 문자열의 oldChar 문자들을 newChar 문자로 치환한 문자열을 반환 |
replace(charSequence target, CharSequence replacement) | String | 원본 문자열의 target 문자열을 replacement 문자열로 치환해서 반환 |
진법
메서드 | return type | 내용 |
Integer.parseInt(String s, int radix) | int | radix 진법으로 숫자를 표현하는 문자열 s를 정수로 변환 |
Integer.toString(int v, int radix) | String | 정수 v를 raidx 진법의 문자열로 변환 |
Long.parseLong(String s, int radix) | long | radix 진법으로 숫자를 표현하는 문자열 s를 정수로 변환 |
Long.toString(long v, int radix) | String | 정수 v를 radix 진법의 문자열로 변환 |
정규표현식
정규표현식 | 내용 |
. | 개행 문자를 제외한 아무 문자 |
[abc] | a, b, c 중 아무거나 |
[^abc] | a, b, c를 제외한 문자 |
[a-z] | a에서 z 사이의 문자 |
a* | a 0개 이상 |
a+ | a 1개 이상 |
a? | a 0개 또는 1개 |
a{5} | a 5개 |
a{2,} | a 2개 이상 |
a{2,4} | a 2개 이상, 4개 이하 |
a|b | a 또는 b |
^a | 문자열 처음 문자가 a |
a$ | 문자열 마지막 문자가 a |
\ | 이스케이프 |
메서드 | return type | 내용 |
replaceAll(String regex, String replacement) | String | 전달받은 정규표현식에 매칭되는 패턴을 모두 replacement로 치환 |
matches(String regex) | boolean | 문자열이 전달받은 정규표현식에 매칭되는지 여부를 반환 |
split(String regex) | String[] | 전달받은 정규표현식에 매칭되는 패턴을 기준으로 원본 문자열을 잘라서 반환 |
정규표현식에서 제대로 된 백스페이스를 넣어주려면 백스페이스를 두 번 넣어주어야 한다.
'Java' 카테고리의 다른 글
Java의 데이터 입출력 스트림 (0) | 2024.04.24 |
---|---|
[오브젝트] 객체지향 프로그래밍 (0) | 2023.07.26 |
함수형 인터페이스와 람다 표현식 (0) | 2023.06.18 |