[알고리즘문제풀기] 문자열 잘라서 정렬하기

silver's avatar
Sep 03, 2025
[알고리즘문제풀기] 문자열 잘라서 정렬하기

문제

내가 작성한 오답

: 빈 문자열 포함
import java.util.Arrays; class Solution { public String[] solution(String myString) { String[] answer = myString.split("x"); Arrays.sort(answer); return answer; } }

내가 작성한 정답

import java.util.*; class Solution { public String[] solution(String myString) { List<String> answer = new ArrayList<>(); for(String s:myString.split("x")) { if(!s.isEmpty()) answer.add(s); } answer.sort(null); return answer.toArray(String[]::new); } } import java.util.Arrays; class Solution { public String[] solution(String myString) { return Arrays.stream(myString.split("x")) .filter(s->!s.isEmpty()) .sorted() .toArray(String[]::new); } }

다른 사람들의 정답

import java.util.*; class Solution { public String[] solution(String myString) { // StringTokenizer 클래스는 문자열을 특정 구분자(델리미터)를 기준으로 나누어 토큰 단위로 분리하는 데 사용 StringTokenizer st = new StringTokenizer(myString, "x"); int idx = 0, N = st.countTokens(); String[] result = new String[N]; for (int n = 0;n < N;n++) result[idx++] = st.nextToken(); Arrays.sort(result); return result; } }
💡
StringTokenizer는 빈 문자열은 토큰으로 인식하지 않는다
split은 빈 문자열도 토큰으로 포함할 수 있다.
 
Java의 StringTokenizer 클래스는 문자열을 특정 구분자(델리미터)를 기준으로 나누어 토큰 단위로 분리하는 데 사용하는 도구이다. StringTokenizer는 split()보다 간단한 인터페이스로 문자열 분리에 자주 쓰이며, 토큰 단위로 순차 접근이 가능합니다. 다만, split()은 정규식 기반이며 배열로 반환한다
생성자
  • StringTokenizer(String str)
    • 기본 구분자(공백)를 기준으로 문자열을 쪼갬
  • StringTokenizer(String str, String delim)
    • 지정한 구분자(delim)를 기준으로 문자열을 쪼갬
  • StringTokenizer(String str, String delim, boolean returnDelims)
    • 구분자도 토큰으로 포함할지 여부 설정
주요 메소드
  • boolean hasMoreTokens()
    • 분리된 토큰이 더 있으면 true 반환
  • String nextToken()
    • 다음 토큰을 반환
  • int countTokens()
    • 남은 토큰 개수 반환
Share article

silver