String 클래스 메서드와 StringBuilder 클래스의 메서드들 중
toCharArray, repeat, toString, append, getChars, setLength에 대해서 정리하였습니다.
String 클래스 메서드
toCharArray 메서드
toCharArray 메서드는 문자열(String)을 문자 배열(char[])로 변환합니다.
String문자열을 문자 하나하나 쪼갠 뒤 char[]배열에 순서대로 저장하여 반환합니다.
String str = "Hello";
char[] charArray = str.toCharArray();
// charArray는 "Hello"의 문자 배열입니다.
// charArray[0] = 'H'
// charArray[1] = 'e'
// charArray[2] = 'l'
// charArray[3] = 'l'
// charArray[4] = 'o'
repeat 메서드
repeat 메서드는 문자열을 반복하여 생성합니다.
"String.repeat(int i) // i = 반복할 횟수"
해당 기능은 자바11에서 새로 추가된 String메서드입니다.
String str = "abc";
String repeated = str.repeat(3);
// repeated는 "abcabcabc"가 됩니다.
//응용하기
Char c='a';
String repeated2 = (c + "").repeat(3);
System.out.println(repeated2);
//charc에 ""을 합연산해주어 String으로 형변환하여 repeat를 사용할 수 있습니다.
StringBuilder 클래스 메서드
toString 메서드
toString 메서드는 StringBuilder 객체를 문자열(String)로 변환합니다.
StringBuilder sb = new StringBuilder("Hello");
String result = sb.toString();
// result는 "Hello" (String타입)가 됩니다.
append 메서드
append 메서드는 StringBuilder 객체에 문자열을 추가하는 데 사용됩니다.
StringBuilder 변수 바로 뒤쪽에 원하는 문자열을 추가할 수 있습니다.
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World!");
String result = sb.toString();
// result는 "Hello World!"가 됩니다.
setLength 메서드
setLength 메서드는 StringBuilder 객체의 길이를 설정하는 데 사용됩니다.
새로 할당하거나 삭제하는 것보다 퍼포먼스가 좋기 때문에
setLength(0); 를 통해서 스트링빌더 변수를 초기화하는데 많이 사용합니다.
StringBuilder sb = new StringBuilder("Hello");
sb.setLength(3);
String result = sb.toString();
// result는 "Hel"이 됩니다.
getChars 메서드
getChars 메서드는 StringBuilder 객체의 문자열을 문자 배열로 복사합니다.
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
- int srcBegin : 스트링빌더에서 복사를 시작할 문자의 인덱스
- int srcEnd : 스트링빌더에서 복사를 끝낼 문자의 인덱스 //"0~스트링빌더의 길이"로 설정한다면 처음부터 끝까지
- char[] dst : 문자를 집어넣을 문자배열(char[] 변수명)
- int dstBegin : char[] 문자배열에 붙여 넣을 위치의 인덱스 //중간부터 넣을 수도 있다! 처음부터라면 0으로!
StringBuilder sb = new StringBuilder("Hello");
char[] charArray = new char[5];
sb.getChars(0, 5, charArray, 0);
// charArray는 "Hello"의 문자 배열입니다.
'Java' 카테고리의 다른 글
[Java/자바] toString() 메서드에 대하여 (0) | 2023.09.05 |
---|---|
[Java/자바] 중첩 클래스에 대하여. (Nested class) (0) | 2023.09.04 |
[Java/자바] 접근 제한자에 대하여. (Access Modifier) (0) | 2023.08.31 |
[Java/자바] 상속에서의 자동 타입 변환에 대하여 (w.다형성) (0) | 2023.08.30 |
[Java/자바] String 클래스의 valueOf() 메서드에 대하여 (0) | 2023.08.29 |