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): 문자열이 정규표현식과 일치하는지 확인
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): 문자열이 정규표현식과 일치하는지 확인