Written by coh at home

[JAVA]문자열 본문

languages/java

[JAVA]문자열

och 2023. 9. 7. 13:03

3-6 문자열

! 객체의 변수는 메모리 공간을 가리킨다. 

 

literal 문자열은 heap의 string constant pool이라는 영역에 저장이 된다.

String str1 = "hello";

String str2 = "hello";

따라서 둘은  같은 메모리 공간을 가리킨다. 

 

따라서 글자의 비교는 "hello".equals(str1) 과 같은 메소드를 사용하는 것이 좋다. 

 

-문자열을 이어붙이는 방법.

+ 연산자를 사용. (연산자 재정의)

 

-해당 값을 문자열로 넣는 방법

값 + "" 또는 valueOf() 메소드 사용 

 

-문자열을 값으로 변환

int a = Integer.parseInt("123") 같은 방식으로 사용.

 

- \으로 특수문자 의미 지우기

 

3-7 문자열 상

-length() //갯수

-isEmpty() //비었는지

-isBlank() //white space포함 비었는지

-trim() // 문자열 양 끝 white space제거

-charAt(INDEX) // 해당 인덱스 문자 반환. 여담으로 ft_strlen의 길이 - 1이 마지막 문자.

-indexOf("str") // 일치하는 첫 문자열 위치 반환 + 해당 위치부터

-equlas(str)

-equalsIgnoreCase(str) // 대소문자 구분 없이 비교

-contains/startsWith/endsWith(str) //  해당 단어의 포함 여부를 반환 + 해당 위치부터.

-compareTo(str) // 첫 문자가 같다면 갯수의 차이를 다르다면 알파벳 순서의 차이만큼을 반환.

-toUpperCase()

-toLowerCase() // 두 가지 메소드는 텍스트에서 특정 글자를 포함했는지 체크할 때 사용. 예를 들어 str.toLowerCase().contains(str2.toLowerCase())

 

3-8 문자열 하

-method chaining

-concat vs + operator

문자열을 이어붙이는 방식은 두가지가 있다.

+연산자 같은 경우는 str + 123 + true 전부 알아서 변환을 해준다. 

concat 메소드 같은 경우는 str.concat(str2)와 같이 문자열만을 이어 붙인다.

 

성능은 +가 더 좋다.

여러 개를 이어 붙이는 경우 concat은 새로운 객체를 계속 만들어 내기 때문이다.

다만 차이는 유의미하지 않다.

 

- repeat(num) // str.repeat(2) 해당 문자열을 num만큼 반복한 문자열을 반환. 

- substring(idx... ) // idx부터 (idx2까지) 잘라서 반환.  indexOf 와 함께 활용. 원하는 문자열 위치 찾아서 필요한 부분만 잘라내기 좋음.

- replace(target, replacement) // 문자열에서 모든target을 다른 문자열로 치환

- 배열과 split

char [] str = str1.toCharArray(); 

String [] str = str1.split("") //주어진 기준으로 자름

'languages > java' 카테고리의 다른 글

[JAVA] method  (0) 2023.10.22
[JAVA]for each  (0) 2023.10.22
[JAVA]타입추론  (0) 2023.10.22
[JAVA]문자열 null과 formatting.  (0) 2023.10.22
[JAVA]Intro  (0) 2023.08.07