我需要编写一个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 的字符串格式,例如[., #]
只是替换,
以获得一类分隔符[.#]