카테고리 없음
자바 공부#1_07. String 다루기
코딩연습중
2025. 3. 30. 16:37
자바 String 메서드
1. equals()
- 목적: 문자열의 값이 같은지 비교
- 시간복잡도: O(n) (두 문자열의 길이만큼 비교)
- 파라미터: Object anotherString
String a = "hello"; String b = "hello"; System.out.println(a.equals(b)); // true
2. indexOf()
- 목적: 특정 문자 또는 문자열이 처음 등장하는 인덱스 반환
- 시간복잡도: O(n)
- 파라미터:
- int indexOf(int ch)
- int indexOf(String str)
"hello".indexOf('l'); // 2 "hello".indexOf("lo"); // 3
3. contains()
- 목적: 특정 문자열이 포함되어 있는지 확인
- 시간복잡도: O(n)
- 파라미터: CharSequence s
"hello".contains("el"); // true
4. charAt()
- 목적: 특정 인덱스에 있는 문자 반환
- 시간복잡도: O(1)
- 파라미터: int index
"hello".charAt(1); // 'e'
5. replace()
- 목적: 모든 대상 문자/문자열을 다른 것으로 대체
- 시간복잡도: O(n)
- 파라미터:
- String replace(char oldChar, char newChar)
- String replace(CharSequence target, CharSequence replacement)
"apple".replace("p", "b"); // "abble"
6. replaceAll()
- 목적: 정규 표현식에 해당하는 모든 부분을 대체
- 시간복잡도: O(n) + 정규식 파싱
- 파라미터: String regex, String replacement
"a1b2c3".replaceAll("[0-9]", ""); // "abc"
7. replaceFirst()
- 목적: 정규 표현식에 첫 번째로 일치하는 부분만 변경
- 시간복잡도: O(n)
- 파라미터: String regex, String replacement
"a1b2c3".replaceFirst("[0-9]", ""); // "ab2c3"
8. substring()
- 목적: 문자열의 일부를 잘라서 새로운 문자열로 반환
- 시간복잡도: O(k) (추출된 문자열의 길이 k에 비례)
- 파라미터:
- int beginIndex
- int beginIndex, int endIndex
String str = "hello";
str.substring(1); // "ello"
str.substring(1, 4); // "ell"
9. toUpperCase()
- 목적: 모든 문자를 대문자로 변환
- 시간복잡도: O(n)
- 파라미터: 없음
"hello".toUpperCase(); // "HELLO"
10. toLowerCase()
- 목적: 모든 문자를 소문자로 변환
- 시간복잡도: O(n)
- 파라미터: 없음
"HELLO".toLowerCase(); // "hello"
11. split()
- 목적: 정규식을 기준으로 문자열 분리 → 배열 반환
- 시간복잡도: O(n)
- 파라미터:
- String regex
- String regex, int limit
"a,b,c".split(","); // ["a", "b", "c"]
12. getBytes()
- 목적: 문자열을 바이트 배열로 변환
- 시간복잡도: O(n)
- 파라미터: (옵션) String charsetName
byte[] bytes = "abc".getBytes(); // [97, 98, 99]
13. length()
- 목적: 문자열의 길이 반환
- 시간복잡도: O(1)
- 파라미터: 없음
"hello".length(); // 5
14. compareTo()
- 목적: 문자열을 사전 순으로 비교 (정렬 시 사용)
- 시간복잡도: O(n) (공통 접두사 길이만큼)
- 파라미터: String anotherString
"abc".compareTo("abd"); // -1 (abc < abd)
15. trim()
- 목적: 앞뒤 공백 제거 (중간 공백은 제거하지 않음)
- 시간복잡도: O(n)
- 파라미터: 없음
" hello ".trim(); // "hello"
16. valueOf()
- 목적: 기본형 값을 문자열로 변환
- 시간복잡도: O(1) ~ O(log n)
- 파라미터: int, boolean, char, long, double, Object 등
String str = String.valueOf(123); // "123"
17. toCharArray()
- 목적: 문자열을 문자 배열로 변환
- 시간복잡도: O(n)
- 파라미터: 없음
char[] chars = "abc".toCharArray(); // ['a', 'b', 'c']
18. concat()
- 목적: 문자열을 이어 붙임 (+와 유사)
- 시간복잡도: O(n + m) (기존 문자열 + 추가 문자열 길이)
- 파라미터: String str
"Hello".concat(" World"); // "Hello World"
19. format()
- 목적: 포맷 문자열 생성 (서식 기반 문자열)
- 시간복잡도: O(n) + 포맷 파싱 비용
- 파라미터: String format, Object... args
String result = String.format("이름: %s, 나이: %d", "홍길동", 25); // "이름: 홍길동, 나이: 25"
문자열 포매팅
String.format()
- 목적: C 언어 스타일의 서식을 사용하여 문자열을 조립
- 시간복잡도: O(n) + 포맷 파싱 비용
- 파라미터: String format, Object... args
String name = "홍길동";
int age = 25; String result = String.format("이름: %s, 나이: %d", name, age);
System.out.println(result); // "이름: 홍길동, 나이: 25"
System.out.printf()
- 목적: 포맷팅된 문자열을 콘솔에 바로 출력
- 반환값 없음 (void)
System.out.printf("원주율은 %.2f입니다.\n", 3.14159); // 출력: 원주율은 3.14입니다.
정렬, 너비, 패딩
System.out.printf("|%10s|\n", "hi"); // 오른쪽 정렬: | hi|
System.out.printf("|%-10s|\n", "hi"); // 왼쪽 정렬: |hi |
System.out.printf("|%05d|\n", 7); // 0으로 패딩: |00007|