반응형

이 게시물은 다음 링크를 참조하여 학습했습니다.

 

String (Java Platform SE 7 )

Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argum

docs.oracle.com

 

StringBuilder (Java Platform SE 7 )

Inserts the string into this character sequence. The characters of the String argument are inserted, in order, into this sequence at the indicated offset, moving up any characters originally above that position and increasing the length of this sequence by

docs.oracle.com

 

[Java] 자바의 문자열(String) 함수 정리

예전에 네이버 블로그 할때 포스팅 했던 것을 옮겨놓았다. Java의 String 객체는 내장함수가 굉장히 많다~~ 어떤게 있는지 알아보자!! 문자열함수 마스터하자~ ​ ​ 1. equals() equals는 두개의 문자열

cceeun.tistory.com

 

java.lang.StringBuilder (문자열) 주요 메소드 [1/2]

StringBuilder와 StringBuffer 클래스도 String 클래스와 같이 문자열을 다루는 클래스입니다. 다만, String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값

codevang.tistory.com

이번 게시물은 문자열에 관한 내용이다.

문자열에 대해서는 다 안다고 생각하고 설명은 생략했다.

 

1. String

String의 메서드중 내가 자주 사용할 메서드들을 정리했다.

 

(1) char charAt(int idx)

문자열에서 idx에 해당하는 위치의 문자 반환

 

(2) boolean contains(CharSequence s)

문자열에 s가 포함되어 있는지 확인

 

(3) boolean equals(Object anObject)

문자열이 anObject와 같은지 확인. Java에서 == 연산자를 쓰면 주소값을 비교하기 때문에, 값을 비교하는 equals() 사용

 

(4) int indexof(int ch)

문자열에서 ch가 존재하는지 확인하고, 존재하면 인덱스 번호, 존재하지 않으면 -1을 반환. 

아스키코드 값을 기준으로 비교하기 때문에 int ch

 

(5) int length()

문자열의 길이 반환

 

(6) String replace(char oldChar, char newChar), replace(CharSequence target, CharSequence replacement)

문자열에서 oldChar/target 에 해당하는 내용을 newChar/replacement로 바꿔줌

 

(7) String replaceAll(String regex, String replacement)

문자열에서 regex에 해당하는 내용을 replacement로 바꿔줌.

여기서 regex의 경우 문자열을 넣어줄 수도 있고, 정규식을 넣어줄 수도 있다.

 

(8) String[] split(String regex)

문자열을 regex를 기준으로 잘라서 문자열 배열로 반환

 

(9) String substring(int beginIndex), substring(int beginIndex, int endIndex)

문자열을 인자가 1개일 때는 beginIndex부터 끝까지에 해당하는 문자열을 반환하고,

인자가 2개일 때는 beginIndex부터 endIndex이전까지의 문자열을 반환한다.

 

(10) char[] toCharArray

문자열을 문자 배열로 반환해준다.

 

(11) String toLowerCase

문자열에서 알파벳 대문자에 해당하는 값들을 알파벳 소문자로 바꿔준다.

 

(12) String toUpperCase

문자열에서 알파벳 소문자에 해당하는 값들을 알파벳 대문자로 바꿔준다.

 

(13) String toString

값을 문자열로 바꿔서 반환해준다. 이미 문자열일 경우 자기 자신반환

 

(14) String trim()

문자열의 앞뒤 공백을 제거해서 반환한다.

 

** 정규식에 관한 내용은 여기 있따 ↓↓↓

 

2. StringBuilder

2-1. String클래스와 동일 메서드

(1) charAt

문자열에서 idx에 해당하는 위치의 문자 반환

 

(2) indexOf

문자열에서 ch가 존재하는지 확인하고, 존재하면 인덱스 번호, 존재하지 않으면 -1을 반환.

아스키코드 값을 기준으로 비교하기 때문에 int ch

 

(3) length

문자열의 길이 반환

 

(4) replace

문자열에서 oldChar/target 에 해당하는 내용을 newChar/replacement로 바꿔줌

 

(5) substring

문자열을 인자가 1개일 때는 beginIndex부터 끝까지에 해당하는 문자열을 반환하고,

인자가 2개일 때는 beginIndex부터 endIndex이전까지의 문자열을 반환한다.

 

(6) toString

값을 문자열로 바꿔서 반환해준다. 

 

2-2. StringBuilder메서드

(1) StringBuilder append(String str)

문자열에 str을 더해준다

 

(2) StringBuilder delete(int start, int end)

문자열에서 start부터 end이전까지의 값을 제거한다.

 

(3) StringBuilder deleteCharAt(int index)

문자열에서 idx에 해당하는 문자를 제거한다.

 

(4) StringBuilder insert(int offset, String str)

문자열에서 offset위치에 str을 삽입한다.

 

(5) StringBuilder reverse()

문자열을 뒤집는다.

 

3. Why?

StringBuilder를 보면 추가된 기능들이 있긴 하지만, String만으로도 해소할 수 있는 내용들이다.

근데 왜 StringBuilder라는 객체가 따로 있는 것일까?

왜냐면 String은 불변객체(Immutable)이기 때문이다.

문자열을 더하거나, 삭제 등 문자열을 가공하게 되면 String은 새로운 객체를 하나 더 생성하여 메모리를 할당하게 된다.

문자열을 가공하는 연산이 많아지게 될 경우 의미없는 String객체가 메모리에 쌓이게 될 것이다. 

이를 해결하기 위해 가변객체(Mutable)인 StringBuilder를 사용한다.

 

 

반응형

'Legacy' 카테고리의 다른 글

[Java#4] Map, HashMap, TreeMap  (0) 2022.05.03
[Java#3] Array, ArrayList, Arrays  (0) 2022.05.02
[Java#1] 입출력  (0) 2022.04.29
[C++#5-5] map  (2) 2022.04.18
[C++#5-4] set  (0) 2022.04.18

+ Recent posts