如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]

Posted

技术标签:

【中文标题】如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]【英文标题】:How to split a String in Java with multiple delimiters utilizing a delimiter array? [duplicate] 【发布时间】:2017-07-03 11:41:19 【问题描述】:

我想要做的是获取一个 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;


【问题讨论】:

问题是什么? String splitRegex = Arrays.stream(new String(delimiters).split("")).map(Pattern::quote).collect(Collectors.joining("|")); return input_words.split(splitRegex); @shmosel,太好了。 这样做要简单得多:input_words_split = input_words.split("[" + String.valueOf(delimiters) + "]"); @neildo 这对于特殊字符会失败。 【参考方案1】:

以递归方式:

 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]

【讨论】:

问题结束后如何发布? 我认为它是在问题结束之前发布的。 20 分钟后发布。 嗯,我不太确定:o

以上是关于如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在分隔符是单词的Java中拆分字符串

Java - 基于多个分隔符拆分字符串

C++输入多行数字到数组

Java:使用正则表达式拆分字符串而不删除分隔符[重复]

java,split 如何设置多个分隔符?

使用分隔符将二维数组划分为多个数组