알고리즘 문제 풀이를 하다보면 메서드를 활용했을 때 쉽게 풀 수 있는 것들이 많다. 문자열과 관련된 메서드들을 참고, 정리 하기위해 정리해보았다.
1. 문자열 관련 메서드 정리
먼저 하나 주의사항만 간단하게 적어둔다. 문자열은 기본적으로 불변이기 때문에 부분 문자열을 구한다거나, 문자열을 합치는 등의 작업을 할 때 기존 문자열이 변하는 것이 아닌 새로운 문자열이 반환된다는 점이다. 익숙하지 않을 때 헷갈릴 수 있는 부분이기 때문에 반드시 주의해야한다.
- length(), isEmpty(), isBlank(), charAt()
length() : 문자열의 길이를 int로 반환한다.
isEmpty() : 문자열이 비어있는지 여부를 확인(길이가 0)하여 boolean을 반환한다.
isBlank() : 문자열이 비어있는지 확인(길이기 0 or 공백만 있는 경우)하여 boolean을 반환한다.
charAt(int index) : 지정된 인덱스에 있는 문자(char)를 반환한다.
String str1 = "Hello!";
String str2 = "";
String str3 = " ";
System.out.println(str1.length()); // 6
System.out.println(str2.isEmpty()); // true
System.out.println(str3.isEmpty()); // false
System.out.println(str2.isBlank()); // true
System.out.println(str3.isBlank()); // true
System.out.println(str1.charAt(3)); // l
- compareTo(), contains(), indexOf(), lastIndexOf(), substring(), concat()
compareTo(String anotherString) : 두 문자열을 사전순으로 비교한다.
contains(CharSequence S) : 문자열이 특정 문자열을 포함하고 있는지 확인하여 boolean을 반환한다.
indexOf(String ch) : 문자열이 처음 등장하는 위치(인덱스)를 반환한다.
lastIndexOf(String ch) : 문자열이 마지막으로 등장하는 위치(인덱스)를 반환한다.
substring(int beginIndex), substring (int beginIndex, int endIndex) : 문자열의 부분 문자열을 반환한다. (인자가 하나일 때는 해당 인덱스 이후 모든 문자열을 반환하고, 인자가 둘일때는 시작 인덱스, 끝 인덱스(미포함) 까지의 부분 문자열을 반환한다.
concat(String str) : 문자열의 끝에 다른 문자열을 붙인다.
String str1 = "abcabc";
String str2 = "bc";
System.out.println(str1.compareTo(str2)); // -1 (음수이므로 str1이 str2 앞에 정렬)
System.out.println(str2.compareTo(str1)); // 1 (양수이므로 str2이 str1 뒤에 정렬)
System.out.println(str1.contains(str2)); // true
System.out.println(str2.contains(str1)); // false
System.out.println(str1.indexOf("bc")); // 1
System.out.println(str1.lastIndexOf("bc")); // 4
System.out.println(str1.substring(3)); // abc
System.out.println(str1.substring(2,5)); // cab (마지막 인덱스(5)는 제외)
System.out.println(str1.concat(str2)); // abcabcbc
- toLowerCase(), toUpperCase(), trim()
toLowerCase() : 모든 문자열을 소문자로 변환하여 문자열을 반환한다.
toUpperCase() : 모든 문자열을 대문자로 변환하여 문자열을 반환한다.
trim() : 문자열의 양쪽 끝의 공백을 제거한다.
String str1 = "ABC";
String str2 = " abc ";
System.out.println(str1.toLowerCase()); // abc
System.out.println(str2.toUpperCase()); // ABC
System.out.println(str2.trim()); // abc
- replace(), replaceAll(), replaceFirst(), matches()
replace(CharSequence target, CharSequence replacement) : 특정 문자열을 새 문자열로 대체한 문자열을 반환한다.
replaceAll(String regex, String replacement) : 문자열에서 정규 표현식과 일치하는 부분을 새 문자열로 대체한 문자열을 반환한다.
replaceFirst(String regex, String replacement) : 문자열에서 정규 표현식과 일치하는 첫 번째 부분을 새 문자열로 대체한 문자열을 반환한다.
matches(String regex) : 문자열이 주어진 정규표현식과 일치하는지 확인하여 boolean을 반환한다.
String str1 = "ABC123";
String str2 = "abcabcabcabc";
System.out.println(str1.replace("ABC", "DEF")); // DEF123
System.out.println(str2.replaceAll("bc", "BC")); // aBCaBCaBCaBC
System.out.println(str2.replaceFirst("bc", "BC")); // aBCabcabcabc
System.out.println(str2.matches("\\w*")); // true
- split(), join(), valueOf(), toCharArray()
split(String regex) : 문자열을 정규 표현식을 기준으로 분할한 문자열 배열을 반환한다.
join(CharSequence delimiter, CharSequence... elements) : 주어진 구분자로 여러 문자열을 결합하여 문자열을 반환한다.
valueOf(Object obj) : 다양한 타입을 문자열로 변환하여 반환한다.
toCharArray() : 문자열을 문자 배열([]Char)로 변환한다.
String str = "abcabcabcabc";
System.out.println(Arrays.toString(str.split("b"))); // [a, ca, ca, ca, c]
System.out.println(String.join("메롱", str.split("b"))); // a메롱ca메롱ca메롱ca메롱c
String bool = String.valueOf(true);
String integer = String.valueOf(123);
String ch = String.valueOf('a');
System.out.println(bool); // true
System.out.println(integer); // 123
System.out.println(ch); // a
char[] chars = str.toCharArray();
System.out.println(Arrays.toString(chars)); // [a, b, c, a, b, c, a, b, c, a, b, c]
'Java' 카테고리의 다른 글
지역 클래스의 지역 변수 캡쳐 (0) | 2025.01.08 |
---|---|
JAVA 타입 변환 정리 (0) | 2025.01.07 |
Java의 equals()와 hashCode() (0) | 2025.01.03 |
JAVA의 메모리 구조 (0) | 2025.01.02 |
JAVA 배열 (0) | 2024.12.31 |