如何使用定界符数组在Java中使用多个定界符拆分字符串?

How to split a String in Java with multiple delimiters utilizing a delimiter array?

本问题已经有最佳答案,请猛点这里访问。

我想做的是获取一个input_string以及一个定界符的char [],然后使用该char []中的所有定界符来拆分该input_string。

这是我到目前为止的代码,但是我还没有找到在split函数中利用char []的方法。 如果这不可能,那么我意识到我可以让某人为定界符创建一个正则表达式,但这意味着尽可能简单地更改任何内容,因此添加一个额外的定界符就像将其添加到定界符一样简单。 数组。

1
2
3
4
5
6
7
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;

}


以递归方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 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);
            }

        }
    }

如何使用 :

1
2
3
4
5
6
7
8
9
10
11
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);
    }

输出:

1
[te, st, rr, a, e]