728x90
문자열 처리를 돕는 클래스입니다. 메모리 구조편에서 살펴봤듯이 String 타입은 변수가 아니라 클래스의 인스턴스입니다. 즉, 객체이자 참조변수가 되는 것이죠. 원시타입 변수가 아닌 모든 타입은 어떠한 클래스의 인스턴스입니다.
String a = "abc" 또는 String a = new String("abc") 형태로 String Class의 인스턴스를 하나 생성했다면 java.lang.String 클래스에 생성자를 문자열로 넣어주고 인스턴스를 생성했다는 의미입니다. 그래서 a.method()형태로 해당 클래스에 포함된 메소드를 사용할 수 있게 되는 것입니다.
또한 system.out.println(a) 형태로 출력할 수 있는 것은 String Class에서 toString() 메소드가 생성자로 들어온 문자열을 출력하도록 오버라이딩 되어 있기 때문입니다. 요점은 String 타입의 문자열 생성은 원시타입 변수가 아니고 java.lang.String 클래스의 인스턴스 생성과 동일하다는 것입니다.
[ equals() ]
- Object.equals() 오버라이딩
- 문자열이 같은지 비교 (값을 비교)
- 대소문자 구분
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
String b = new String("abc");
System.out.println(a.equals(b)); // true
String c = new String("Abc");
System.out.println(a.equals(c)); // false
}
}
[ equalsIgnoreCase() ]
- equals()와 비슷하지만 대소문자 구분 없음
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
String b = new String("abc");
System.out.println(a.equalsIgnoreCase(b)); // true
String c = new String("Abc");
System.out.println(a.equalsIgnoreCase(c)); // true
}
}
[ toString() ]
- Object.toString() 오버라이딩
- 생략하고 인스턴스만 사용하면 컴파일러가 디폴트로 붙여서 컴파일해줌
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
System.out.println(a); // "abc"
System.out.println(a.toString()); // "abc"
}
}
[ length() ]
- 문자열 길이 반환 (공백 포함)
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
System.out.println(a.length()); // 3
}
}
[ charAt() ]
- 인덱스로 제공된 위치의 문자 반환
- C언어와 마찬가지로 문자열은 내부적으로 char타입의 배열로 만들어짐
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
System.out.println(a.charAt(0)); // a
System.out.println(a.charAt(1)); // b
System.out.println(a.charAt(2)); // c
}
}
[ trim() ]
- 문자열 양 끝의 공백 제거해서 새로 만들어진 문자열 인스턴스 주소 반환
- 기존 문자열 값을 변경하는 것이 아님 (힙 영역에 새로운 문자열 인스턴스 생성)
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String(" abc ");
System.out.println(a); // " abc "
String b = a.trim();
System.out.println(b); // "abc"
}
}
[ isEmpty() ]
- 문자열의 길이가 0이면 true, 아니면 false
- C언어 isspace() 함수와 동일
package study.first;
public class Study {
public static void main(String[] args) {
String a = new String("abc");
String b = new String("");
System.out.println(a.isEmpty()); // false
System.out.println(b.isEmpty()); // true
}
}
728x90
'▸JAVA > 라이브러리(API)' 카테고리의 다른 글
java.lang.StringBuilder (문자열) 주요 메소드 [1/2] (2) | 2019.12.10 |
---|---|
java.lang.String (문자열) 주요 메소드 [4/4] (2) | 2019.12.10 |
java.lang.String (문자열) 주요 메소드 [3/4] (0) | 2019.12.10 |
java.lang.String (문자열) 주요 메소드 [2/4] (2) | 2019.12.10 |
java.lang.Object 주요 메소드 [1/1] (4) | 2019.12.10 |
댓글