喜欢c#:
string[] Split(char[] separator, StringSplitOptions options)
java中是否有等效的方法?
答案 0 :(得分:5)
这样做你想要的:
public static void main(String[] args) throws Exception
{
char[] arrOperators = { ',', '^', '*', '/', '+', '-', '&', '=', '<', '>', '=', '%', '(', ')', '{', '}', ';' };
String input = "foo^bar{hello}world"; // Expecting this to be split on the "special" chars
String regex = "(" + new String(arrOperators).replaceAll("(.)", "\\\\$1|").replaceAll("\\|$", ")"); // escape every char with \ and turn into "OR"
System.out.println(regex); // For interest only
String[] parts = input.split(regex);
System.out.println(Arrays.toString(parts));
}
输出(仅包括信息/兴趣的最终正则表达式):
(\,|\^|\*|\/|\+|\-|\&|\=|\<|\>|\=|\%|\(|\)|\{|\}|\;)
[foo, bar, hello, world]
答案 1 :(得分:1)
String[] split(String)
您可以使用char[]
String(char[]).
转换为字符串
答案 2 :(得分:1)
查看public String[] split(String regex)
和java.util.regex
。
答案 3 :(得分:0)
可能你想要这个。我不确定:
String text = "abcdefg";
System.out.println(Arrays.toString(text.split("d|f|b")));
结果:
[a, c, e, g]
答案 4 :(得分:0)
你必须使用Regex才能实现这一目标。它将告诉你必须分开的基础。 就像有“OR”|运营商。如果你使用
String regex = "a|b|c";
String[] tokens = str.split(regex)
它将拆分为a,b&amp; c基础。
答案 5 :(得分:0)
另一个功能级别是Guava的Splitter:
Splitter splitOnStuff = Splitter.on(CharMatcher.anyOf("|,&"))
.omitEmptyStrings();
Iterable<String> values = splitOnStuff.split("value1&value2|value3,value4");
答案 6 :(得分:0)
Goold ol'StringTokenizer也会这样做:
public static void main(String[] args) {
String delim = ",^*/+-&=<>=%(){};";
String str = "foo^bar{hello}world";
StringTokenizer tok = new StringTokenizer(str, delim);
while (tok.hasMoreTokens()) {
System.out.println(tok.nextToken());
}
}