
❓왜 정리하였나요?
알고리즘 스터디에서 문자열 문제와 리스트 문제를 풀기 전 코딩테스트를 하기위해서는 문자열을 다루는 함수들을 많이 알아야하기에 패스트캠퍼스 강의를참고하여 정리하였습니다!
String(문자열)
- 배열 등에서 사용하는 인덱스 접근을 통해 문자열 내부요소 변경은 불가능
- String.charAt(N)을 통해 해당 N인덱스에 접근해 char값을 제공하는 것일 뿐 접근자를 제공하는 것은 아님
- java에서 변경을 하고 싶을때는 새로운String을 만들어 변경해야함
- 값을 덮어씌우기
- 문자열의 각 문자별로 나눠 배열에 담은 후, 변경하고 싶은 인덱스의 값에 접근해 변경뒤 배열을 다시 문자열로 변환.
- String.substring(시작, 끝) 메소드를 통해 문자열의 시작인덱스부터 끝인덱스-1까지를 가져온후 뒤에 변경하고 싶은 문자열과 연결하여 새로운 문자열을 생성하거나 기존 문자열에 덮어씌우기
StringBuilder를 통해 변경가능한 문자열을 사용할 수 있지만 문자열에 익숙해진뒤 사용하기
- String끼리 덧셈연산 가능, 문자열+문자열, 문자열+문자
- 문자열끼리 ==을 통해 비교 불가능. java에서 Object클래스들에게는 ==연산이 주소 값을 비교.
- 문자열의 메모리 저장
-
literal 선언은 java Heap 메모리영역안에 있는 constant 공동 메모리에 저장된다. 이때 값이 같으면 주소값은 같다.
-
Object String은 java Heap에 새로운 문자열을 저장하고 주소값이 할당.
* 이때 literal값은==을 사용해도 주소값이 같으므로 true가 나오지만 Object는 값이같더라도 서로 따로 저장되고 주소값이 다르므로 false가 나오게 된다.
* String.equals(String2) 메소드를 이용하여 값이 같은지 이용
String Object가 가진 메소드들
- str1.CharAt(int index) : index번째 문자를 반환(return값은 char)
- str1.length() : 문자열의 길이를 반환(return 값은 int)
- str1.equals(String str2) : 문자열의 값을 비교(return 값은 boolean)
- str1.CompareTo(String str2) : 두 문자열을 사전순으로 비교한 결과
- str1.toCharArray() : 문자열을 반환(return 배열)
- str1.toLowerCase() : 모든 문자를 소문자로 변경 후 새로운 문자열 반환(return String)
- str1.toUpperCase() : 모든 문자를 대문자로 변경 후 새로운 문자열 반환(return String)
- st1.contains(char ch) : 문자열이 포함되었는지 여부 반환(return boolean)
- str1.replace(바꾸고자하는 문자열 또는 문자,특정 문자열 또는 문자) : 바꾸고자하는 문자열 또는 문자를 특정 문자열 또는 문자로 바꿔 새로운 문자열 반환(return String)
- str1.substring(int 시작인덱스, int 끝인덱스) : 시작인덱스부터 끝인덱스-1 의 문자열을 가지는 새문자열 반환(return String)
- str1.indexOf(char ch,int fromindex) : fromindex부터 ch문자가 나타나는 가장 첫 인덱스를 반환
📜출처
- 패스트 캠퍼스 "핵심유형 20개로 한 번에 끝내는 알고리즘 코딩테스트 with Java 초격차 패키지 Online" 문자열 강의