我需要编写一个Java代码,该代码可以根据将传递的Separator拆分所需的String。分隔符的数量也可以更改。 示例:
new StringSplit("\.").split("foo.bar#baz")
output = {foo, bar#baz}
new StringSplit("\.", "\#").split("foo.bar#baz")
output = {foo, bar, baz}
在构造函数中,我处理数字分隔符,但是在设计 split 方法时遇到了问题。请同样帮我。
答案 0 :(得分:3)
好的,如果我能理解您的逻辑,则需要这样的东西:
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的字符串格式,例如[\., #]
只需替换,
即可获得一类定界符[\.#]