如何使用分隔符数组在多个分隔符中拆分Java中的String?

时间:2017-02-15 00:32:25

标签: java string

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

这是我到目前为止的代码,但我还没有找到在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;

}

1 个答案:

答案 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]