java.lang패키지3 : String 클래스, StringBuffer와 StringBuilder 클래스의 메서드
String 클래스의 특징과 객체 생성
- 가장 많이 사용되는 클래스 1위!
- 기본특징
객체생성방법 2가지
- new 키워드 : heap메모리공간에 새로운 문자열을 저장
- “”문자열할당 : 상수저장공간(Constant Pool)에 새로운 문자열을 저장.- 중복된 값 무시.
- 메모리절약에 유리(아래 이미지 참조).
 
- 참고링크 : equals()와 ==연산자차이점, String Pool


String 주요 메서드
| 선언부 | 설명 | 
|---|---|
| public int length() | 주어진 문자열의 길이를 리턴 | 
| public char charAt(int index) | index에 해당하는 문자를 리턴. 없는경우 IndexOutOfBoundsException | 
| public int indexOf(int ch) | 문자열내에서 ch의 index를 리턴. 없을경우 -1 | 
| public boolean equals(Object o) | o의 문자열의 내용을 비교해서 결과를 boolean타입으로 리턴 | 
| public boolean equalsIgnoreCase(String s) | 대소문자 구별없이 s의 문자열의 내용이 같은지 boolean타입으로 리턴 | 
| public String replace(char oldChar, char newChar) | 문자열에서 oldChar를 찾아서 newChar로 변경된 새로운 문자열을 리턴 | 
| public String substring(int beginIdx, int endIdx) | 문자열의 beginIdx에서 endIdx앞까지 잘라서 리턴 | 
| public String trim() | 문자열 좌우 공백을 없앤 결과를 리턴 | 
| public boolean matches(String regex) | 문자열이 정규표현식 regex에 부합되는지 여부를 boolean타입으로 리턴 | 
| public String[] split(String regex) | 문자열을 주어진 정규표현식으로 나눈 후 배열에 담아서 리턴 | 
charAt() 예시
| 1 | String ssn = "000101-4111111"; | 
equalsIgnoreCase()예시
| 1 | String s = "HI"; | 
replace() 예시
- 전화번호의 뒷자리를 별표표시하는 방법
| 1 | String hp = "010-1234-5678"; | 
- 전화번호의 하이픈을 없애는 방법
| 1 | System.out.println("하이픈제거 폰번호 :"+hp.replace("-", "")); | 
split()과 matches() 예시
- 정규표현식을 파라미터로 받는다.
- 참고링크 : 정규표현식
- split()예시 :
| 1 | String str = "Hi java world"; | 
- split()과 matches()예시1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11public static void main(String[] args) { 
 String str = "Hi java world";
 String[] sResult = str.split("[a ]");
 for(int i=0; i<sResult.length;i++){
 System.out.println(i+" : "+sResult[i]);
 }
 String nameRule = "[a-zA-Z가-힣]{2,5}";
 System.out.println(str.matches(nameRule));
 System.out.println("Hi".matches(nameRule));
 System.out.println("Hijavaworld2".matches(nameRule));
 }
StringBuffer와 StringBuilder 클래스의 메서드
- String클래스는 불변성 클래스이기때문에 문자열 연산에 제약이 많음- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- sql = "abc"; //"abc" 
 sql.toUpperCase(); //"ABC"
 sql; //"abc"
 //대문자 ABC가 sql에 저장되지 않는다. String은 불변성 클래스이다.
 //따라서 새로운 변수에 담아쓰는 수 밖에 없다.
 str = sql.toUpperCase(); //"ABC"
 str //"ABC"
 sql //"abc"- 따라서 문자열 연산에 적합한 StringBuffer와 StringBuilder 클래스 사용가능.
 
- Buffer(버퍼) : 배열형태. 데이터를 임시로 저장하는 공간.
StringBuffer와 String의 차이점
- 여러 차이점 중에 불변성유무가 있다.
| 1 | //String | 
- 따라서 문자열 연산에 적합한 StringBuffer와 StringBuilder 클래스 사용가능.
주요 메서드
- 여기서 P는 Object, String, StringBuffer, charSequence, Char[], Boolean, char, int, long, float, double이 올 수 있다.
| 선언부 | 설명 | 
|---|---|
| public StringBuilder append(P param) | 현재 버퍼의 맨 뒤에 param을 추가한 후 StringBuilder타입으로 리턴 | 
| public String toString() | 버터의 내용을 문자열로 리턴 | 
append()와 toString()예시
| 1 | StringBuilder b = new StringBuilder("서면-대연-광안-수영"); | 
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)