자료구조 & 알고리즘/자료구조 & 알고리즘

[코딩테스트] Java 코딩테스트 필수 기능 Part.2

오징어달료 2024. 11. 8. 23:41


 Java로 코딩테스트를 준비한다면 필수적으로 알아야하는 기능 2탄 String 에 대해서 집중적으로 설명해보고자 한다.

 String = 문자열은 코딩테스트에서 가장 기본이 클래스 이기에 String 클래스에 있는 메소드를 자유자재로 사용 할 수 있어야 문제풀이에 있어 돌아가지 않고 직관적으로 해결 할 수 있다.


0. 문자열 비교

  • equals() : 두 문자열의 내용을 비교할 때 사용함. 객체의 참조가 아닌 실제 값을 비교하므로, 문자열 비교시 권장
String str1 = "abc";
String str2 = new String("abc");
System.out.println(str1.equals(str2));
  • compareTo() : 두 문자열을 사전순으로 비교. 반환값이 음수면 첫 번째 문자열이 두 번째 보다 앞에 있고, 양수면 뒤에 있음. 0은 두 문자열이 동일함을 의미
String str1 = "abc";
String str2 = "def";
System.out.println(str1.compareTo(str2));

 

1. 문자열 검색

  • indexOf() : 특정 문자나 문자열이 처음으로 등장하는 위치를 반환
String str = "Hello world";
System.out.println(str.indexOf('o'));
  • contains() : 특정 문자열이 포함되어 있는지 여부를 확인
String str = "hello world";
System.out.println(str.contains("world"));

 

2. 문자열 반환

  • toLowerCase() / toUppercase() : 문자열을 소문자 또는 대문자로 변환함
String str = "Hello World";
System.out.println(str.toUpperCase());
System.out.println(str.toLowerCase());
  • trim() : 문자열의 앞뒤 공백을 제거함
String str = "    hello.    ";
System.out.println(str.trim());

 

3. 문자열 분할 및 결합

  • split() : 정규 표현식을 사용하여 문자열을 분리하고 배열로 반환
String str = "apple, banana, orange";
String[] fruits = str.split(",");
for(String fruit : fruits){
	System.out.println(fruit);
}
  • join() : 배열이나 리스트의 요소들을 특정 구분자로 연결하여 하나의 문자열로 만듦
String[] words = {"apple", "banana", "orange"};
String result = String.join(", ", words);
System.out.println(result);

 

4. 문자열 대체

  • replace() : 특정 문자를 다른 문자로 대체
  • replaceAll() : 정규 표현식을 사용하여 대체할 수 있으며, 성능에 주의해야 함.
String str = "hello world";
System.out.println(str.replace('o', 'a'));

 

5. 문자열 길이 및 문자 접근

  • length() : 문자열의 길이를 반환
  • charAt() : 특정 인덱스에 있는 문자를 반환

 

6. 불변성 및 성능 최적화

 Java에서 String은 불변객체이기 때문에 반복적인 문자열 조작시에는 StringBuilder나 StringBuffer를 사용하는 것이 성능상 유리함.

  • StringBuilder : 동기화가 필요 없는 경우 사용. 성능이 더 우수함
  • StringBuffer : 동기화가 필요한 경우 사용
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString());

 

7. 기타 유용한 메서드

  • substring() : 특정 범위의 부분 문자열을 추출
  • valueOf() : 기본 타임 값을 문자열로 변환
int num = 100;
String strNum = String.valueOf(num);