본문 바로가기
Develop/Java

구분자를 기준으로 문자열 분리하는 방법

by jaeyoungb 2022. 9. 6.

구분자(delimiter)를 기준으로 문자열을 분리하는 방법에는 무엇이 있을까?

 

먼저, split() 메서드를 보자.

 

 

split() 메서드는 다음과 같이 2가지 형태로 사용할 수 있다.

public String[] split(String regex)
public String[] split(String regex, int limit)

 

split() 메서드는 매개변수로 문자열을 구분할 정규식 형태의 구분자를 입력받는다.

 

구분자는 정규식(regular expression)의 형태이고,

알맞은 정규식을 입력해주면 여러 개의 문자열을 자를 수 있다.

 

 

다음 예제로 알아보자.

 

"a&b,c,d-e" 라는 문자열을   &   ,   -   를 구분자로 구분하려 한다.

이럴 때는, 위와 같이 | 을 구분자 사이에 넣어주어 정규식을 표현할 수 있다.

 

 

결과는 다음과 같다.

 

적절하게 구분자를 통해서 문자열이 구분된 결과를 볼 수 있다.

 

 

 

또 다른 예제를 보자.

 

"a.b,c+d-e"라는 문자열을   .   ,   +   -   를 구분자로 구분하려 한다.

 

정규식에서   .   +   -   는 특별한 의미를 가진다.

위 예제와 동일하게 | 를 적어주되, 앞에 \\ 를 적어서 구분한다.

 

위와 같은 결과를 얻을 수 있다.

 

 

 

다음 문자열 분리 방법에는 StringTokenizer 클래스가 있다.

 

split() 메서드의 경우에는 구분자가 여러 종류로 연결된 경우 분리하는 방법이었다면,

StringTokenizer 클래스의 경우에는 한 종류로 연결된 경우에 사용한다.

 

 

사용법은 다음과 같다.

StringTokenizer st = new StringTokenizer("문자열", "구분자");
인자로 구분자를 넣어주지 않을 경우에는, 공백이 기본 구분자가 된다.

 

 

다음 예시를 보자.

 

"a/b/c/d/e"라는 문자열을 동일한 구분자 / 를 구분하여 문자열로 표현하고 싶을 때,

위와 같이 사용해주면 된다.

 

 

결과는 동일하게 다음과 같다.

 

 

 

 

StringTokenizer의 대표적인 메서드는 다음과 같다.

반환 타입 메서드 설명
int countTokens() 꺼내지 않고 남아 있는 토큰의 수
boolean hasMoreTokens() 남아 있는 토큰이 있는지 여부
String nextToken() 토큰을 하나씩 꺼내옴

 

 

 

이렇게, 구분자를 통해 문자열을 구분하는 방법 2가지를 알아보았다.

아주 간략하게 설명했는데, 이 방법들을 사용하면서 자세한 내용들을 습득하게 되면 내용을 더 추가할 것이다.

 

 

 

(참고 : https://hianna.tistory.com/617https://rimkongs.tistory.com/294)

'Develop > Java' 카테고리의 다른 글

캡슐화(Encapsulation)  (0) 2022.09.06
상속(Inheritance)  (0) 2022.09.06
내부 클래스란?  (0) 2022.09.05
생성자란?  (0) 2022.09.05
필드(Field)와 메서드(Method)란?  (0) 2022.09.05