如何在java中使用char数组分隔符拆分字符串?

时间:2011-07-15 05:15:48

标签: java split

喜欢c#:

string[] Split(char[] separator, StringSplitOptions options)

java中是否有等效的方法?

7 个答案:

答案 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());
    }
}