///////
Search
🧵

String

김준호_0929

String

String클래스에는 문자열을 저장하기 위해서 문자형 배열 참조변수(char[]) value를 인스턴스 변수로 정의해놓고 있다. 인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴스변수(value)에 문자형 배열 (char[])로 저장된다.
String 클래스는 앞에 final이 붙어 있으므로 다른 클래스의 조상이 될 수 없다.
아래의 코드와 같이 ‘+’연산자를 이용해서 문자열을 결합하는 경우 인스턴스 내의 문자열이 바뀌는 것이 아니라 새로운 문자열(’”ab”)이 담긴 String인스턴스가 생성된다.
문자열을 결합하는 것은 매 연산 시 마다 새로운 문자열을 가진 String인스턴스가 생성되어 메모리 공간을 차지하게 되므로 가능한 한 결합횟수를 줄이는 것이 좋다.

문자열 비교

String str1 = "abc"; // 문자열 리터럴 "abc"의 주소가 str1에 저장됨. String str2 = "abc"; // 문자열 리터럴 "abc"의 주소가 str2에 저장됨. String str3 = new String("abc"); // 새로운 String 인스턴스를 생성 String str4 = new String("abc";) // 새로운 String 인스턴스를 생성
Java
복사
String 클래스의 생성자를 이용한 경우에는 new연산자에 의해서 메모리할당이 이루어지기 때문에 항상 새로운 String인스턴스가 생성된다. 그러나 문자열 리터럴은 이미 존재하는 것을 재사용 한다.
equals()를 사용했을 때는 두 문자열의 내용(”abc”)을 비교하기 때문에 두 경우 모두 true를 결과로 얻지만, String인스턴스의 주소를 등가비교연산자 ‘==’로 비교했을 때는 결과가 다르다.

String 객체 생성 두가지방법

리터럴을 정의해서 사용하는 방법
String s1 = ‘java’
객체를 생성하는 방법
String s2 = new String(”java”)
Example
출력결과

equals - 문자열 비교하기

문자열을 비교하는 메서드
Example

charAt - 문자 추출

문자열에서 문자를 추출하기
인덱스는 0부터 시작
Example
출력결과

indexOf - 문자열 안에서 단어 찾기

문자열의 인덱스를 찾아줌
Example
출력결과

length - 문자열 길이

문자열 길이 반환
Example
출력결과

trim - 공백 잘라내기

공백을 없애주는 메서드
Example
출력결과

Split - 문자열 단어로 분리

파라미터값을 기준으로 정해 문자열을 단어로 분리해준다.
Example
출력결과
Example2
출력결과2

valueOf

기본 타입값을 문자열로 전환
Example
출력결과