如何在运行时使用多个分隔符拆分字符串



我需要编写一个Java代码,它可以根据我们将传递的分隔符拆分所需的字符串。分隔符的数量也可以更改。 例:

new StringSplit(".").split("foo.bar#baz")
output = {foo, bar#baz}
new StringSplit(".", "#").split("foo.bar#baz")
output = {foo, bar, baz}

在构造函数中,我正在处理数字分隔符,但是在设计拆分方法时遇到了问题。请帮助我。

好的,如果我能理解你的逻辑,你需要这样的东西:

public static String[] split(String input, String... delimiters) {
String regex = Arrays.toString(delimiters).replace(", ", "");
return input.split(regex);
}

您可以像这样调用您的方法:

String input = "foo.bar#baz";
String[] result = split(input, "\.", "#");

输出

[foo, bar, baz]

详:

此方法将采用要拆分的字符串和分隔符的变量。
Java 中的String::split方法使用正则表达式,因此您可以通过分隔符创建正则表达式 我只是使用一个简单的技巧,Arrays.toString(delimiters)这将返回 varargs 的字符串格式,例如[., #]只是替换,以获得一类分隔符[.#]

最新更新