구분자(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/617, https://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 |