JAVA :: String 클래스

smi·2021년 1월 31일
2

JAVA (자바)

목록 보기
9/62
post-thumbnail

📝 String 클래스

💬 문자열을 나타내며, 스트링 리터럴은 String 객체로 처리된다.

⚠ 스트링 객체는 수정이 불가능하다.

String str = "abcd"; // 스트링 리터럴로 스트링 객체 생성
char data[] = {'a', 'b', 'c', 'd'};
String str2 = new String(data);
String str3 = new String("abcd"); // str2와 str3는 모두 "abcd" 문자열

💡 new String()

💬 String 객체를 생성

String str = new String(byte[] bytes); // 배열 전체를 String 객체로 생성
String str = new String(byte[] bytes, String charsetName); // 지정한 문자셋으로 디코딩

String str = new String(byte[] bytes, int offset, int length); 
// 배열의 offset 인덱스 위치부터 length만큼 String 객체로 생성
String str = new String(byte[] bytes, int offset, int length, String charsetName); 
// 지정한 문자셋으로 디코딩

💡 new String과 스트링 리터럴 차이

💬 서로 다르게 관리한다.

💬 new String()에 의해 생성된 스트링은 힙 메모리에 별도로 생성한다.

💬 스트링 리터럴은 자바 내부에서 리터럴 테이블로 관리하여, 동일한 리터럴은 공유시킨다.

👉 예시
String cpp = new String("C++"); //new String()
String java = "Java"; //스트링 리터럴

💡 String 클래스 종류

💬 compareTo()

👉 예시
String java = "Java";
String cpp = "C++";
int res = java.compareTo(cpp);
if(res < 0) System.out.println(java + "<" + cpp);
else System.out.println(java + ">" + cpp);
👉 결과

JAVA > C++

💬 indexOf()

⚠ 주어진 문자열이 포함되어 있지 않으면 -1 리턴
👉 예시
String subject = "자바 프로그래밍";
int index = subject.indexOf("C++");
System.out.println(index)
👉 결과

-1

Reference

명품 자바 에센셜 (2014, 신용권) / 혼자 공부하는 자바 (2019, 신용권)

profile
공부한 거 올려요 :)

0개의 댓글