Java String - 메소드 살펴보기

String 클래스는 문자열을 편리하게 다루기 위한 메소드를 제공한다.
기능이 매우 많으므로 필요한 메소드만 사용하고 그 외의 필요하거나 API 문서로 원하는 메소드를 찾는 것이 좋다.

문자열 정보 조회

  • length(): 문자열 반환
  • isEmpty(): 문자열 비었는지 확인 (공백(Whitespace)만 있는 경우 false 반환)
  • isBlank(): 문자열 비었는지 확인 (공백(Whitespace)만 있는 경우 true 반환)
  • charAt(int index): 지정한 인덱스에 문자를 반환

문자열 비교

  • equlas(Object anObject): 두 문자열이 동일한지 비교
  • equalsIgnoreCase(String anotherString): 두 문자열 대소문자 구별없이 비교
  • compareTo(String anotherString): 두 문자열 사전적 비교
    • 숫자 비교인 경우 반환 값: 1(크다), 0(같다), -1(작다)
    • 문자열인 경우 반환 값(ASCII 변환하면 이해할 수 있다.): "a".compareTo("c") 계산하면 2 반환함. ascii 변환 시 a(61), c(63) 숫자이며 61-63 계산한것과 같음.
  • compareToIgnoreCase(String str): 두 문자열 대소문자 구별없이 사전적 비교
  • startsWith(String prefix): 문자열 특정 접두사로 시작하는지 확인
  • endsWith(String suffix): 문자열이 특정 접미사로 끝났는지 확인

문자열 검색

  • contains(CharSequence s): 문자열이 특정 문자열을 포함하고 있는지 확인
  • indexOf(String ch): 문자열 처음 등장하는 위치 인덱스 반환
  • indexOf(String ch, int fromIndex): 문자열 처음 등장하는 위치 인덱스 반환
  • lastIndexOf(String ch): 문자열 마지막 위치 인덱스 반환

문자열 조작 및 변환

  • substring(int beginIndex): 전체 문자열 중 인수의 인덱스부터 문자열을 반환
  • substring(int beginIndex, endIndex): 전체 문자열의 인덱스부터 문자열을 반환
  • concat(String str): 문자열 끝에 다른 문자열 붙여서 반환
  • replace(CharSequence target, CharSequence replacement): 특정 문자열을 새 문자열로 변환하여 반환
  • replaceAll(String regex, String replacement): 문자열을 정규표현식과 일치하는 것을 새 문자열로 변환하여 반환
  • toLowerCase(): 문자열을 소문자 변환하여 반환
  • toUpperCase(): 문자열을 대문자로 변환하여 반환
  • trim(): 문자열 양 끝의 공백(Whitespace) 제거하여 반환
  • strip(): 유니코드 공백 Whitespace 포함해서 제거하여 반환

문자열 분할 및 조합

  • split(String regex): 문자열을 정규 표현식으로 분할하여 반환
  • join(CharSequence delimiter, CharSequence... elements): 구분자 기준으로 결합하기

기타 유틸리티

  • valueOf(Object obj): 다양한 타입을 문자열로 반환
  • toCharArray(): 문자열을 배열로 반환
  • format(String format, Object... args): 문자열과 인자를 사용한 새로운 문자열을 생성
  • matches(String regex): 문자열이 정규표현식과 일치하는지 확인
💡
CharSequence 타입은 String, StringBuilder 상위 타입이다. 문자열 처리에 다양한 객체로 받을 수 있도록 한다.

String 조회 메소드 - 실습

  • length(): 문자열 반환
  • isEmpty(): 문자열 비었는지 확인 (공백(Whitespace)만 있는 경우 false 반환)
  • isBlank(): 문자열 비었는지 확인 (공백(Whitespace)만 있는 경우 true 반환)
  • charAt(int index): 지정한 인덱스에 문자를 반환

테스트 데이터로 문자열을 제공하고 각각의 메소드를 사용해보도록 한다.
테스트 데이터: String str = "Java String";

int Length()

System.out.println("문자열 길이: " + str.length());
11
length 메소드는 "Java String" 의 길이 11자로 출력한다.

bool isEmpty()

System.out.println("문자열이 비어 있었는가: " + str.isEmpty());
false
isEmpty 메소드는 Java String 문자가 있으므로 false 값으로 반환한다. (문자가 " " 공백에도 false 값으로 반환)

bool isBlank()

System.out.println("문자열이 비어 있거나 공백인가: " + str.isBlank());
false
isBlank 메소드는 "Java String" 문자가 있으므로 fasle 값으로 반환한다.

System.out.println("문자열이 비어 있거나 공백인가: " + " ".isBlank());
true
" " 공백만 있는 문자열인 경우 Blank 가 맞으므로 true 값으로 반환한다.

char charAt(int index)

System.out.println("문자열이 비어 있거나 공백인가: " + str.charAt(5));
S
문자열 "Java String" 5번 이동하여 값("S") 반환한다.


String 비교 메소드 - 실습

  • equlas(Object anObject): 두 문자열이 동일한지 비교
  • equalsIgnoreCase(String anotherString): 두 문자열 대소문자 구별없이 비교
  • compareTo(String anotherString): 두 문자열 사전 순으로 비교
  • compareToIgnoreCase(String str): 두 문자열 대소문자 구별없이 사전 순으로 비교
  • startsWith(String prefix): 문자열 특정 접두사로 시작하는지 확인
  • endsWith(String suffix): 문자열이 특정 접미사로 끝났는지 확인

실습용 String 변수 3개 테스트 데이터로 사용

String str1 = "Java, Apple";
String str2 = "java, apple";
String str3 = "Java, Banana";

bool equlas(Object anObject)

System.out.println(str1.equals(str2));
false

bool equlasIgnoreCase(String anotherString)

System.out.println(str1.equalsIgnoreCase(str2));
true

int compareTo(String anotherString)

System.out.println("a".compareTo("b"));
-1

System.out.println("b".compareTo("a"));
1

System.out.println("a".compareTo("b"));
2

System.out.println(str1.compareTo(str2));
32

System.out.println(str1.compareToIgnoreCase(str2));
0

bool startsWith(String prefix)

System.out.println(str1.startsWith("Java"));
true

System.out.println(str1.startsWith("va", 2));
true

endsWith(String suffix)

System.out.println(str1.endsWith("Apple"));
true

System.out.println(str1.endsWith("Apple"));
true


String 검색 - 실습

  • contains(CharSequence s): 문자열이 특정 문자열을 포함하고 있는지 확인
  • indexOf(String ch): 문자열 처음 등장하는 위치 인덱스 반환
  • indexOf(String ch, int fromIndex): 문자열 처음 등장하는 위치 인덱스 반환
  • lastIndexOf(String ch): 문자열 마지막 위치 인덱스 반환

테스트 데이터는 다음 String 변수의 문장을 사용한다.
String str = "!!! Hello, Welcome To Hello Java World !!!";

boolean contains(CharSequence s)

System.out.println(str.contains("Java"));
true

int indexOf(String ch)

System.out.println(str.indexOf("Hello"));
4

int indexOf(String ch, int fromIndex)

System.out.println(str.indexOf("Hello"), 11);
22

int lastIndexOf(String ch)

System.out.println(str.lastIndexOf("Hello"));
22


String 조작 및 변환 - 실습

  • substring(int beginIndex): 전체 문자열 중 인수의 인덱스부터 문자열을 반환
  • substring(int beginIndex, endIndex): 전체 문자열의 인덱스부터 문자열을 반환
  • concat(String str): 문자열 끝에 다른 문자열 붙여서 반환
  • replace(CharSequence target, CharSequence replacement): 특정 문자열을 새 문자열로 변환하여 반환
  • replaceAll(String regex, String replacement): 문자열을 정규표현식과 일치하는 것을 새 문자열로 변환하여 반환
  • toLowerCase(): 문자열을 소문자 변환하여 반환
  • toUpperCase(): 문자열을 대문자로 변환하여 반환
  • trim(): 문자열 양 끝의 공백(Whitespace) 제거하여 반환
  • strip(): 유니코드 공백 Whitespace 포함해서 제거하여 반환

테스트 데이터는 다음 String 변수의 문장을 사용한다.
String str = "!!! Hello, Welcome To Hello Java World !!!";

String substring(int beginIndex)

System.out.println(str.substring(11));
Welcome To Hello Java World !!!

String substring(int beginIndex, endIndex)

System.out.println(str.substring(11, 21));
Welcome To

String concat(String str)

System.out.println(str.concat("@@@"));
!!! Hello, Welcome To Hello Java World !!!@@@

String replace(CharSequence target, CharSequence replacement)

System.out.println(str.replace("Hello", "Good"));
!!! Good, Welcome To Good Java World !!!

String replaceFirst(CharSequence target, CharSequence replacement)

System.out.println(str.replaceFirst("Hello", "Good"));
!!! Good, Welcome To Hello Java World !!!

toLowerCase()

toUpperCase()


String 분할 및 조합 - 실습

  • split(String regex): 문자열을 정규 표현식으로 분할하여 반환
  • join(CharSequence delimiter, CharSequence... elements): 구분자 기준으로 결합하기

String 기타 - 실습

  • valueOf(Object obj): 다양한 타입을 문자열로 반환
  • toCharArray(): 문자열을 배열로 반환
  • format(String format, Object... args): 문자열과 인자를 사용한 새로운 문자열을 생성
  • matches(String regex): 문자열이 정규표현식과 일치하는지 확인