본문 바로가기
Programming/JAVA

[JAVA] String, StringBuilder, StringBuffer, StringTokenizer 메서드들

by 안녕주 2023. 9. 12.

String, StringBuffer, StringBuilder 차이가 궁금하다면 이글을 함께 읽을것을 추천드립니다.

입력할때 사용하는  Scanner, BufferedReader, StringTokenizer 사용법 및 차이가 궁금하다면 이글을 함께 읽을것을 추천드립니다.

 

String

String str = "abcde";

//(1) 문자열 찾는 메서드들
str.length() // str의 길이 반환
str.isEmpty() // str의 길이가 0이면 true, 아니면 false
str.charAt(2) // 인덱스로 문자 찾기, c 반환
str.indexOf("c") // 문자로 첫번째 인덱스 찾기, 2 반환
str.lastIndexOf("c") // 문자의 마지막 인덱스 찾기, 2 반환


//(2) 문자열의 index값으로 문자열을 자르는 메서드
str.substring(2, 4) // 2~3 위치의 문자열 "cd" 반환
str.substring(3) // 3부터 끝까지의 문자열 "de" 반환


//(3) 문자열에서 해당 문자를 찾아서 변경 or 비교 메서드
str.replace('b', 'k') // b를 k로 변경 (akcde)  (변환대상, 변환할값)
str.replace('[b]', 'k') // 정규표현식이 가능 (변환대상 - 정규식, 변환할 값)
str.equals("abcde") // str과 abcde를 비교해서 같으면 true, 다르면 false
str.contains("bc") // str에 bc가 포함되어 있으면 true, 아니면 false


//(4) 문자열 자르는 메서드
str.split(" ") // 띄어쓰기로 구분된 문자열 str을 분리해서 String[] 배열 반환
str.split() // 띄어쓰기 없는 문자열 str을 한 문자씩 분리해서 String[] 배열 반환
str.trim() // str의 앞뒤 공백 제거, 문자열 사이 공백은 제거 X


//(5) 대소문자로 변경하는 메서드
str.toLowerCase() // 대문자를 모두 소문자로 변경
str.toUpperCase() // 소문자를 모두 대문자로 변경


//(6) 문자열 비교, 사전상 앞뒤인지 비교하는 메서드
str.compareTo("abcdd")
/*
str과 abcdd가 같으면 0
str이 abcdd보다 사전순으로 앞이면 -1
str이 abcdd보다 사전순으로 뒤면 1
str과 abcdd가 마지막 문자만 다르면 마지막 문자의 사전순 차이 반환 (여기선 1)
*/


//(7) 숫자와 연관된 형 변환 메서드
Integer.parseInt("300") // 문자열을 숫자로 변환
Integer.toString(300) // 숫자를 문자열로 변환

 

 

StringBuilder, String Buffer

String은 변경이 힘든 타입, StringBuilder는 변경이 가능한 타입이라 문자열을 변경해야하는 문제에서 사용

StringBuilder와 StringBuffer는 함수가 동일하다

StringBuilder sb = new StringBuilder();

//(1) 문자열 추가, 삽입, 삭제
sb.append("abc") // 문자열 추가
sb.insert(2, "kk") // 2 위치에 kk 삽입 (→ abkkc)
sb.delete(0, 2) // 0~1 위치의 문자열 삭제 (→ c)
sb.deleteCharAt(2) // 2 위치의 문자 삭제 (→ ac)

//(2) 문자열 변경
sb.setCharAt(0, 'h') // 0 위치의 문자를 h로 변경 (→ hbc)

//(3) 문자열 뒤집기
sb.reverse() // 문자열 거꾸로 뒤집기 (→ cba)

//(4) 문자열 길이 변경
sb.setLength(2) // 문자열 길이를 2로 줄임 (→ ab)
sb.setLength(4) // 문자열 길이를 4로 늘림 (→ 뒤가 공백으로 채워짐)

//(5) StringBuilder 문자열로 출력
sb.toString() // 문자열로 출력시

 

 

StringTokenizer

문자열을 토큰화할때 사용한다. 특정 문자에 따라 문자열을 나누고 싶을 때 사용한다. ( 사용자로 부터 입력받을 때 주로 같이 사용)

import java.util.StringTokenizer;

//(1) 생성
StringTokenizer st = new StringTokenizer(String); // 띄어쓰기 기준으로 분리
StringTokenizer st = new StringTokenizer(String, 구분자); // 구분자 기준으로 분리
StringTokenizer st = new StringTokenizer(String, 구분자, true); // 구분자를 기준으로 분리하는데, 구분자도 토큰에 넣을경우 true, 아니면 false(디폴트)


//(2) 문자열 분리예시 - 기본(띄어쓰기)
String str = "Hi my name is hellozo0";
StringTokenizer st = new StringTokenizer(str);

String str1 = st.nextToken(); //Hi
String str2 = st.nextToken(); //my


//(3) 문자열 분리예시 - 구분자를 기준으로 
String str = "사과,배.복숭아,수박,멜론";
StringTokenizer st = new StringTokenizer(str, ",."); // 2개 이상의 구분자를 기준으로 정확하게 문자열이 나누기

while(st.hasMoreTokens()){ //리턴할 다음 토큰이 있으면 true, 없으면 false
	System.out.println(st.nextToken());
}

//(4) 토큰의 개수를 리턴
st.countTokens();

 

 

 

[JAVA] 문자열과 관련된 메소드 - 개발자의 공부 기록 (tistory.com)

[Java] 코딩테스트 문법 속성 정리 (1) (velog.io)

댓글