반응형
해당 강의를 보고 정리한 것입니다.
https://programmers.co.kr/learn/courses/5
String클래스
: 자바에서 가장 많이 사용하는 문자열을 표현하는 클래스
- 생성 방법
1. new연산자를 이용하지 않고 인스턴스 생성
- "hello"라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장. ( 상수는 변하지 않는 값을 의미)String str1 = "hello"; String str2 = "hello";
- String str2="hello"; >> hello라는 문자열 상수는 이미 생성돼있음. 즉, str1이 참조하는 인스턴스를 str2도 참조
2. new연산자를 이용해서 인스턴스 생성
- new연산자를 이용해서 인스턴스 생성시 인스턴스는 무조건 새롭게 생성.String str3 = new String("hello"); String str4 = new String("hello");
- String str4 = new String("hello"); >> 문자열을 새롭게 생성. 즉, str3와 str4는 서로 다른 인스턴스 참조
- 참조 변수끼리 ==로 비교하여 서로 같은 것을 참조하는 지 비교if(str1 == str2){ // 같은 인스턴스를 참조하므로 결과는 true System.out.println("str1과 str2는 같은 레퍼런스입니다."); } if(str1 == str3){ // str1과 str3은 서로 다른 인스턴스를 참조하므로 결과는 false System.out.println("str1과 str3는 같은 레퍼런스입니다."); } if(str3 == str4){ // str3과 str4는 서로 다른 인스턴스를 참조하므로 결과는 false System.out.println("str3과 str4는 같은 레퍼런스입니다."); }
- Stirng 클래스 특징
- 다른 클래스와 다르게 new 없이 사용 가능. 메모리를 아끼려면 new를 사용하지 않고 사용하는 것이 좋다.
- 불변 클래스. ( 불변 : String이 인스턴스가 돌때 가지고 있던 값을 나중에 수정할 수 없다. )
- 문자열과 관련된 다양한 메소드를 가지고 있다. 메서드를 호출한다 하더라도 String 내부의 값은 변하지 않음.
- 메소드중 String을 반환하는 메서드는 모두 새로운 String을 생성해서 반환.
- substring()은 문자열 자르기 메소드. (str5은 변하지 않음)String str5 = "hello world"; String str6 = str5.substring(3);
- str6은 str5가 가지고 있는 문자열 중 3번째 위치부터 자른 결과.(새로운 String 참조)
String클래스 메서드
String str = "hello";
- 문자열 길이 구하기
- str.length()는 str이 참조하는 문자열의 길이를 구해서 int타입으로 리턴해주는 메서드
>> 5System.out.println(str.length());
- 문자열 붙이기
- str.concat("문자열") 메서드는 str이 참조하는 문자열 hello에다가 메서드의 인자로 들어온 문자열 world를 붙여서 String타입으로 리턴하는 메서드
- String Class는 불변 클래스, 그러므로 수행 후 새로운 문자열 생성. (원래 클래스는 변하지 않음)
>>hello worldSystem.out.println(str.concat(" world"));
- 문자열 자르기
- str.substring(인덱스1, 인덱스2) 메서드는 str이 참조하는 문자열을 인덱스1부터 인덱스2까지 자른 결과
(인덱스는 0부터 시작)
>>System.out.println(str.substring(1,3)); // 문자열을 인덱스1~3까지 자르기 System.out.println(str.substring(2)); // 문자열 인덱스2부터 마지막까지 자르기
el
llos
반응형
'Language > Java' 카테고리의 다른 글
자바 입문하기11 - 생성자, this (0) | 2022.01.11 |
---|---|
자바 입문하기10 - scope, static, enum (0) | 2022.01.10 |
자바 입문하기8 - 클래스, 참조타입 (0) | 2022.01.10 |
자바 입문하기7 - for each (0) | 2022.01.07 |
자바 입문하기6 - 이차원 배열 (0) | 2022.01.07 |