티스토리 뷰

Java & Kotlin

Java String 클래스 메소드

터프남 2021. 1. 3. 16:57
728x90

이전에 올린 글이 스타일이 안먹고 깨져서 삭제하고 다시올린다..

 

자바의 String 클래스는 문자열을 저장하고 사용하는데 쓰인다.

보통 문자 하나는 기본형인 char 형을 쓰고 문자열 을 사용할 때는 String 클래스를 사용한다.

String도 클래스이기 때문에 메소드가 존재한다.

문자열 연산을 위한 기본 메소드

concat(String str) 메소드

대상 문자열 뒤에 매개변수 str 문자열을 덧붙인 새로운 문자열을 반환한다.

"ABC".concat("DEF");
//결과: ABCDEF

substring(int beginIndex) 메소드

대상 문자열에서 매개변수 beginIndex 위치에 있는 문자열을 새롭게 반환한다.

beginIndex는 0부터 시작한다.

"ABCD".substring(0);
//결과: ABCD
"ABCD".substring(3);
//결과: D

substring(int beginIndex, int endIndex) 메소드

문자열에서 beginIndex와 endIndex 위치 사이에 있는 문자열을 새롭게 반환한다.

그러므로 endIndex의 값은 반드시 beginIndex의 값보다 커야 한다. 문자를 자르는 기능을 한다.

"ABCDE".substring(3,5);
//결과: DE

replace(Char oldChar, Char newChar) 메소드

대상 문자열에서 oldChar 문자를 newChar 문자로 바꾼 새로운 문자열을 반환한다.

"ABCDE".replace('A','a');
//결과: aBCDE

replace(CharSequence t, CharSequence r) 메소드

대상 문자열에서 바꾸고 싶은 문자열 t를 문자열 r로 바꾸어 새로운 문자열을 반환한다.

"ABCDE".replace("ABC","abc");
//결과: "abcDE"

toLowerCase() 메소드

문자열의 문자들을 모두 소문자로 바꾸어 새로운 문자열을 반환한다.

"Target String".toLowerCase();
//결과: target string"

toUpperCase() 메소드

문자열의 문자들을 모두 대문자로 바꾸어 새로운 문자열을 반환한다.

"Target String".toUpperCase();
//결과: TARGET STRING"

문자열 비교를 위한 메소드

equals(Object anObject) 메소드

대상 문자열이 anObject 데이터(객체)와 같은지 비교해서 boolean 값을 반환한다.

"ABC".equals("DEF");
//결과: false

compareTo(String str) 메소드

대상 문자열이 사전적으로 앞에 있는지 뒤에 있는지 확인한다.

반환값이 0이면 두 문자열은 같고, 양수면 대상 문자열이 str보다 뒤에 있고, 음수면 대상 문자열이 str보다 앞에 있다.

"a".compareTo("c");
//결과: -2

startWith(String prefix) 메소드

대상 문자열이 매개변수로 받은 접두사(prefix) 문자열로 시작하는지 확인한 후 boolean 값을 반환한다.

"ABCDE".startWith("ABC");
//결과: true

endWith(String suffix) 메소드

대상 문자열이 매개변수로 받은 접미사(suffix) 문자열로 끝나는지 확인한 후 boolean 값을 반환한다.

"ABCDE".endWith("DE");
//결과: true

 

특정 문자열 위치 파악을 위한 메소드

 

indexOf(int ch) 메소드

주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. (index는 0부터 시작)

"HELLO".indexOf('O');
//결과: 4
"HELLO".indexOf('K');
//결과: -1

indexOf(int ch, int pos) 메소드

주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. (index는 0부터 시작)

"HELLO".indexOf('E', 0);
//결과: 1
"HELLO".indexOf('E', 2);
//결과: -1

indexOf(String str) 메소드

대상 문자열에서 str 문자가 앞에서부터 맨 처음 시작하는 위치(index)를 반환한다. (index는 0부터 시작)

포함되어 있지 않으면 -1을 반환한다.

"ABCDE".indexOf("B");
//결과: 1

lastIndexOf(int ch) 메소드

지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.

"java.lang.Object".lastIndexOf('.');
//결과: 9
"java.lang.Object".indexOf('.');
//결과: 4

lastIndexOf(String str) 메소드

대상 문자열에서 str 문자가 뒤에서부터 맨 처음 시작하는 위치(index)를 반환한다.

"ABCDEABC".lastIndexOf("A");
//결과: 5

 

문자열 구분을 위한 메소드

 

split(String regex) 메소드

문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다.

String animals = "dog,cat,bear";
String[] arr = animals.split(",");
//결과 : arr[0] = "dog"
        arr[1] = "cat"
        arr[2] = "bear"

 

Java8 부터 새롭게 추가된 메소드

 

join(CharSequence delimiter, CharSequence... elements) 메소드

join 메소드 파라미터를 살펴보면 delimiter 구분문자 가 들어가고 ... elements 요소가 들어간다. 자바에서 ...은 파라미터를 여러개 받을수 있는 구조이다. 자동으로 배열처리가 된다. Array나 list도 받을 수 있다.

여러 문자열 사이에 구분자를 넣어서 결합하는 메소드로 구분자로 문자열을 자르는 split()과 반대의 작업을 한다고 생각하면 된다.

예제를 본다면 그냥 이렇게 사용하는 구나 하고 알 수 있을것이다.

구분자로 문자열 Join

String result = String.join("-", "2018","01","22");
System.out.println(result);
//결과: 2018-01-22

구분자에 의해서 배열에 Join

List<String> list = Arrays.asList("java", "python", "nodejs", "ruby");
String result = String.join("-_-", list);
System.out.println(result);
//결과: java-_-python-_-nodejs-_-ruby
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함