문자열, toCharArray, substring
2024. 7. 25. 20:43ㆍJAVA
새롭게 알게 된 것
String 클래스는 한번 값을 주면 중간에 값을 수정할 수 없음. (immutable object)
ex) char 자료형의 경우 값 수정 가능
char[] char_arr = {'A', 'B', 'C', 'D', 'F', 'F', 'G'};
char_arr[4] = 'E';
System.out.println(char_arr);
// ABCDEFG
ex) String의 경우
String str = "ABCDFFG";
str[4] = 'E'; //String 클래스는 배열 등에서 사용하는 대괄호를 제공하지 않음.
System.out.print(str);
// Compile Error!
String의 내용을 바꾸는 3가지 방법
String str = "ABCDFFG";
// (1) 덮어쓰기
str = "ABCDEFG";
// (2) char 배열로 변환 후 값 변경, 다시 String으로 변환
char[] temp_arr = str.toCharArray();
temp_arr[4] = 'E';
str = new String(temp_arr);
// (3) 변경할 요소를 제외한 나머지 문자들을 떼어오기
str = str.substring(0, 4) + 'E' + str.substring(5, 7);
String 생성하는 2가지 방법 : 리터럴 vs new 연산자
String str_literal1 = "test";
String str_literal2 = "test";
String str_object1 = new String("test");
String str_object2 = new String("test");
// String 주소 비교
System.out.println(str_literal1 == str_literal2); // true
System.out.println(str_literal1 == str_object1); // false
System.out.println(str_object1 == str_object2); // false
// String value 비교
System.out.println(str_literal1.equals(str_literal2)); // true
System.out.println(str_literal2.equals(str_object1)); // true
System.out.println(str_object1.equals(str_object2)); // true
- 저장 위치
- String 메소드
+ 이외에 더 다양한 String 메소드
https://docs.oracle.com/javase/8/docs/api/