오늘은 자바의 String 클래스에 대해서 정리하고 관련 알고리즘 문제를 해결 할 때 쓰는 패턴들을 정리해보고자 한다.
java String
아래는 java String 객체에서 사용할 수 있는 메소드와 기능을 정리한 표이다. 여기서 몇가지 헷갈리는 점을 몇개 체크해 보자면 아래와 같다.
- python에서 문자열을 접근할때 string[0] 처럼 인덱스 접근이 안되고, charAt()을 통해 접근한다.
- java collection에서 객체 배열의 길이는 size() String에서 길이는 length()로 구한다.
문자열 함수 | 설명 | 참고 |
equal | 해당 함수는 문자열 간의 “대소문자를 구분”하여서 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다. | 단, String과 StringBuffer간의 비교는 불가능합니다. |
cotentEquals | 해당 함수는 문자열 간의 “대소문자를 구분”하여 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다. | String과 StringBuffer간의 비교가 가능합니다. |
equalsIgnoreCase | 해당 함수는 문자열 간의 “대소문자를 구분하지 않고“ 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다. | |
compareTo | 해당 함수는 문자열 간의 비교와 숫자 간의 비교를 통해서 int 값으로 반환을 해주는 함수입니다. | - 문자열 간의 비교 일 경우 동일한 문자열의 경우는 0의 값을 반환해주며, 이외에는 기준이 되는 문자열과 비교가 되는 문자열의 길이(lenght) 차이를 반환해줍니다. 또한 해당 차이가 불가능 하는 경우에는 비교가 불가능한 문자열의 첫번째 ASCII 코드 값 기준으로 반환합니다. |
split / Pattern.complie / toCharArray |
해당 함수는 문자열을 문자 배열로 반환합니다. | |
chartAt / (char) | 해당 함수는 문자열을 ASCII코드로 변환하거나 역으로 ASCII코드에서 문자열로 변환하는 함수입니다. | |
split | 해당 함수는 문자열을 특정 기준으로 구분을 지어서 배열로 반환을 해주는 함수입니다. | |
substring | 해당 함수는 문자열을 특정 인덱스 범위(n ~ m)내로 지정하여서 원하는 범위의 문자열을 반환을 해주는 함수입니다. | 단, substring(1)인 경우는 첫번째 값을 제외한 뒤에 문자을 가져옵니다 |
repeat | 해당 함수는 문자열을 n번 반복하여 반환을 받고자 할때 사용하는 함수입니다. | |
replace | 해당 함수는 문자열 내에 포함이 되어있는 문자를 제거 혹은 대체 하기 위해 문자열을 이용하여 찾고 반환을 해주는 함수입니다. | 문자열을 이용한 조회 및 변경 |
replaceAll | 해당 함수는 문자열 내에 포함이 되어있는 문자를 제거 혹은 대체 하기 위해 정규식을 이용하여 찾고 반환을 해주는 함수입니다. | 정규식을 이용한 조회 및 변경 |
concat / + 기호 / append |
해당 함수는 문자열을 기준으로 다른 문자열을 합쳐주고 반환을 해주는 함수 입니다. | |
contains | 해당 함수는 문자열 내에 일치하는 문자열을 확인하기 위해 문자열을 이용하여 찾고 존재여부를 반환해주는 함수입니다. | 문자열을 이용한 조회 |
matches | 해당 함수는 문자열 내에 일치하는 문자열을 확인하기 위해 정규식을 이용하여 찾고 존재여부를 반환해주는 함수입니다. | 정규식을 이용한 조회 |
toUpperCase | 해당 함수는 알파벳 문자열을 대문자로 변환하여 반환해주는 함수입니다. | |
toLowerCase | 해당 함수는 알파벳 문자열을 소문자로 변환하여 반환해주는 함수입니다. | |
trim | 해당 함수는 왼쪽과 오른쪽에 있는 공백을 제거하여 반환해주는 함수입니다. | |
format | 해당 함수는 왼쪽 혹은 오른쪽에 문자열을 채워 반환해주는 함수입니다. | |
startsWith | 해당 함수는 문자열이 지정한 접두사와 같은지에 대해 반환해주는 함수입니다 | |
endsWith | 해당 함수는 문자열이 지정한 접미사와 같으지에 대해 반환해주는 함수입니다. | |
join | 해당 함수는 배열을 하나의 문자열로 경합하여 반환해주는 함수입니다. | |
valueOf | 해당 함수는 객체를 문자열로 변환하는데 사용하는 함수입니다. | |
copyValueOf | 해당 함수는 문자열의 일부분을 복사하여 새로운 문자열을 생성하는데 사용하는 함수입니다. |
문자열에서 문자찾기
자바의 String에서 문자를 찾는 방법은 여러가지가 있는데, 그 중 자주사용하는 메소드와 용도를 소개하고자 한다.
메소드 | 사용처 |
indexOf() | 대상 문자열에서 찾고자 하는 문자의 index값을 찾고싶을때 |
contains() | 대상 문자열에서 찾고자 하는 문자열이 포함되어있는지 여부를 알고 싶을때 |
matches() | 대상 문자열에서 정규표현식(숫자, 영문자, 한글)등이 포함되어있는지 여부를 알고 싶을때 |
특히 그 중에서 indexOf()는 매칭되는 인자값의 index 값을 반환하는데, 뒤에 인수를 넣음으로써 몇 번째 인자값의 index부터 검색 할 것인지 정할 수 있다.
사용법 | 설명 |
indexOf(String str) | 대상문자열에 인자값으로 주어지는 String값이 있는지 검색합니다. |
indexOf(char ch) | 대상문자열에 인자값으로 주어지는 char값이 있는지 검색합니다. |
indexOf(String str, int fromIndex) | 대상문자열에 첫번째 인자값으로 주어지는 String값이 있는지 두번째 인자값의 index부터 검색합니다. |
indexOf(char ch, int fromIndex) | 대상문자열에 첫번째 인자값으로 주어지는 char값이 있는지 두번째 인자값의 index부터 검색합니다. |
문자 대, 소문자 변환하기
이번에는 문자를 대 소문자 변환하는 방법에 대해서 알아보고자 한다.
1. String에서 대, 소문자를 변환하는 방법 : 문자열을 대, 소문자 변환하기 위해서는 String객체.toLowerCase() 혹은 toUpperCase을 사용한다.
public class Main {
public static void main(String[] args) {
String testCase = "Hello World!";
testCase = testCase.toLowerCase();
System.out.println(testCase);
testCase = testCase.toUpperCase();
System.out.println(testCase);
}
}
// 출력
hello world!
HELLO WORLD!
2. char에서 대, 소문자를 변환하는 방법 : 문자를 대, 소문자 변환하기 위해서는 Character.toLowerCase, Charater.toUpperCase을 사용한다.
public class Main {
public static void main(String[] args) {
String testCase = "Hello World!";
char[] testCase2 = testCase.toCharArray();
String answer = "";
for(char c : testCase2) {
answer += Character.toLowerCase(c);
}
System.out.println(answer);
answer = "";
for(char c : testCase2) {
answer += Character.toUpperCase(c);
}
System.out.println(answer);
}
}
join
객체나 배열을 합쳐 문자열을 만들고 싶을 때 혹은 문자열 사이에 어떤 값을 끼워 넣고 싶을 때, join을 이용한다.
1. 문자열 사이사이에 값을 끼워 넣고 싶을때
public class Main {
public static void main(String[] args) {
String word1 = "Hello";
String word2 = "World";
String asnwer = String.join(" ", word1, word2);
System.out.println(asnwer);
}
}
// 출력
Hello World
2. 객체나 배열을 합쳐 문자열을 만들고 싶을 때
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList<String> testCase = new ArrayList<>();
testCase.add("Hello");
testCase.add("World");
String answer = String.join(" ", testCase);
System.out.println(answer);
}
}
// 출력
Hello World
'Programing Language > Java' 카테고리의 다른 글
Optional (0) | 2024.05.24 |
---|---|
Stream (0) | 2024.05.09 |
Thread (수정중) (1) | 2024.05.01 |
Collections Framework (0) | 2024.04.26 |
[Java] Java가 실행되는 과정과 JDK, JRE (0) | 2023.06.23 |