자바에서 다른 변수들은 값을 저장하는 방식이지만 문자열은 문자열이 담겨 있는 주소를 참조하고 있다. 문자열을 변수에 담는 경우, 두가지 방법이 있는데 문자열 리터럴을 직접적으로 변수에 대입하는 방식과 new 연산자를 사용해서 객체를 생성하는 동시에 문자열을 대입하는 방법이다.
String name1 = "문자열";
String name2 = "문자열";
String name3 = new String("문자열");
//case1
System.out.println(name1 == name2) // -> true
//case2
System.out.println(name1 == name3) // -> false
name1과 name2는 동일한 문자열 리터럴로 생성된 객체를 참조하기 때문에 결과값이 true로 나오고 name3는 new 키워드로 String 객체를 별도로 생성했기 때문에 주소 값이 다르다.
| 메서드 | 설명 |
|---|---|
| char charAt (int index) | 해당 문자열의 특정 인덱스에 해당하는 문자를 반환 |
| int compareTo (String str) | 해당 문자열을 인수로 전달된 문자열과 사전편찬 순으로 비교 |
| int compareToIgnoreCase (String str) | 해당 문자열을 인수로 전달된 문자열과 대소문자를 구분하지 않고 사전 편찬 순으로 비교 |
| String concat (String str) | 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환 |
| int indexOf (int ch) int indexOf (String str) | 해당 문자열에서 특정 문자, 문자열이 처음으로 등장하는 위치의 인덱스를 반환 |
| int indexOf (int ch, int fromIndex) int indexOf (String str, int fromIndex) | 해당 문자열에서 특정 문자나 문자열이 전달된 인덱스 이후에 처음으로 등장하는 위치의 인덱스를 반환함 |
| int lastIndexOf (int ch) | 해당 문자열에서 특정 문자가 마지막으로 등장하는 위치의 인덱스를 반환 |
| int lastIndexOf (int ch, int formIndex) | 해당 문자열에서 특정 문자가 전달된 인덱스 이후에 마지막으로 등장하는 위치의 인덱스를 반환 |
| String[] split (String regex) | 해당 문자열을 전달된 정규 표현식 (regular expression)에 따라 나눠서 반환 |
| String substring(int beginIndex) | 해당 문자열의 전달된 인덱스부터 끝까지를 새로운 문자열로 반환 |
| String substring (int begin, int end) | 해당 문자열을 전달된 정규 표현식(regular expression)에 따라 나눠서 반환 |
| String toLowerCase() | 해당 문자열의 모든 문자를 소문자로 변환 |
| String toUpperCase() | 해당 문자열의 모든 문자를 대문자로 변환 |
| String trim() | 해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거 |
| length() | 해당 문자열의 길이를 반환 |
| isEmpty() | 해당 문자열의 길이가 0이면 true, 아니면 false를 반환 |