Written by coh at home
[JAVA]문자열 본문
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 |