개요
이번 글에서는 자바의 String 클래스가 무엇인지, String 클래스의 특징, 주요 메서드에 대해 이야기해보려고 한다.
String이란?
문자열 -> 문자의 배열/문자가 여러개 나열되어 있는 것이다.
예를들어 "ABC", "123", "Hello World"와 같이 문자의 배열로 나타나는 형태를 말한다.참고로 "ABC" 같은 경우는 'A', 'B', 'C'라는 원소를 가지는 배열이라고 할 수 있다.
String 클래스의 특징
1. 문자 배열 + 메서드(기능)
-> 문자 배열에 기능을 추가해놓은 것이다.
2. 내용을 변경할 수 없다(Read Only)
-> 예를들어 String a = "He", String b = "llo"와 같은 두 문자열이 존재할때 a = a + b를 수행하면
a는 Hello가 된다. 하지만 이때 원래있던 a가 He -> Hello로 바뀌는 것이 아닌 Hello라는 새로운 문자열이 만들어지는 것이다. 새로운 문자열이 만들어지면서 원래있던 a의 참조변수에 Hello의 주소가 들어가는 것이다.
String 클래스의 주요 메서드
1. char(반환형) -> charAt(int index)
-> charAt 메서드는 문자열에서 해당 위치(index)에 있는 문자를 반환한다.
String Str = new String();
Str = "Hello";
Character c = Str.charAt(0);
System.out.println(c); // -> H
위 코드를 통해 알 수 있듯 "Hello"를 문자의 배열로 생각하였을때 "H"는 Str의 첫번째 원소이므로 charAt 메서드를 실행하였을때 c에 'H'가 저장되는 것이다.
2. int(반환형) -> length()
-> length 메서드는 문자열의 길이를 반환한다.
String Str = new String();
Str = "Hello";
int len = Str.length();
System.out.println(len); // -> 5
3. String(반환형) -> subString(int from, int to)
-> 문자열에서 해당 범위(from ~ to)의 문자열을 반환한다. (to는 포함 X)
String Str = new String();
Str = "Hello";
String tempF = Str.substring(0, 2);
String tempB = Str.substring(2, 5);
System.out.println(tempF); // -> He
System.out.println(tempB); // -> llo
위 코드는 문자열을 문자의 배열이라고 생각하면 이해하기 쉽다.
Str을 문자의 배열이라 생각하였을때 문자 배열 index의 from ~ to의 값을 반환하는 것이다.
tempF(0 ~ 2)는 'H'(0) + 'e'(1)을 반환하고 tempB(2 ~ 5)는 'l'(2) + 'l'(3) + 'o'(4)을 반환하는 것이다.
4. boolean(반환형) -> equals(Object obj)
-> 문자열의 내용이 같은지 확인한다. 같으면 true, 아니면 false를 반환한다.
String Str = new String();
Str = "Hello";
String temp = new String("Hello");
if (Str.equals(temp)) {
System.out.println("같다"); // -> O
} else {
System.out.println("다르다"); // -> X
}
위 코드에서 알 수 있듯 Str과 temp가 같으므로 equal 메서드를 통해 true값을 반환받을 수 있었다.
5. char[](반환형) -> toCharArray()
-> 문자열을 문자 배열로 변환해서 반환한다.
String Str = new String();
Str = "Hello";
char[] CArr = Str.toCharArray();
for(int i = 0; i < CArr.length; i++) {
System.out.print(CArr[i] + " "); // -> H e l l o
}
'Java' 카테고리의 다른 글
[Java] Java에서 AES-256 사용하기 (0) | 2022.08.31 |
---|---|
[Java] Java - 비밀번호 유효성 체크 유틸 (0) | 2022.08.29 |
[Java] Java - System.lineSeparator() 매서드 (0) | 2022.08.25 |
[Java] Java Collection Framework - List, Set, Map (0) | 2022.05.03 |
[Java] 변수의 타입 - 기본형(Primitive type)/참조형(Reference type) (0) | 2022.03.31 |