2017-02-15 5 views
0

내가 원하는 것은 구분자의 input_string과 char []을 취한 다음 해당 char []의 모든 구분 기호를 사용하여 input_string을 분할하는 것입니다.구분 기호 배열을 사용하여 여러 구분 기호로 Java에서 문자열을 분할하는 방법은 무엇입니까?

이것은 지금까지 가지고있는 코드이지만 split 함수에서 char []를 사용하는 방법을 찾지 못했습니다. 이것이 가능하지 않다면 나는 누군가가 구분 기호에 대한 정규 표현식을 만들도록 만들 수 있다고 생각하지만, 이는 가능한 한 간단하게 변경하기위한 것이므로 여분의 구분 기호를 추가하는 것은 구분 기호에 추가하는 것처럼 간단 할 것이다. 정렬. 재귀 방법으로

public String[] stringSplit(char[] delimiters, String input_words) { 
    String[] input_words_split = null; 
    input_words_split = input_words.split(delimiters[0]); 

    return input_words_split; 

} 
+3

그리고 문제는 무엇인가? –

+0

무엇이 문제입니까? 전체 배열을 반복하지 않으시겠습니까? –

+0

"누군가 만들 수 있었습니까?"- 죄송합니다. 정규 표현식은 그다지 어렵지 않습니다. –

답변

2

:

private static void split(String input, String[] separators, int index, List<String> output) { 
     if(index == separators.length) { 

      output.add(input); 

     } else { 
      final String separator = separators[index]; 

      for (String s : input.split(separator)) { 
       split(s, separators, index + 1, output); 
      } 

     } 
    } 

어떻게 사용 :

public static void main(String[] args) { 

     String input = "te,st;rr;a,e"; 
     String[] separators = {",", ";"}; 

     List<String> output = new ArrayList<>(); 

     split(input, separators, 0, output); 

     System.out.println(output); 
    } 

출력 :

[te, st, rr, a, e] 
+0

질문이 마감 된 후 어떻게 게시 되었습니까? – shmosel

+0

질문이 닫히기 바로 전에 게시 된 것 같습니다. –

+0

그것은 20 분 게시했습니다. – shmosel

관련 문제