如何使用分隔符数组在 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 中使用多个分隔符拆分字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章