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

如何在java中使用字符数组分隔符拆分字符串?,java,split,Java,Split,像c#: java中是否有等效的方法 string[] Split(char[] separator, StringSplitOptions options) 您可以将char[]转换为带有String(char[])的字符串。查看public String[]split(String regex)和java.util.regex您可能需要它。我不确定: String[] split(String) 结果: String text = "abcdefg"; System.ou

像c#:

java中是否有等效的方法

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

您可以将
char[]
转换为带有
String(char[])的字符串。

查看
public String[]split(String regex)
java.util.regex

您可能需要它。我不确定:

String[] split(String)
结果:

    String text = "abcdefg";
    System.out.println(Arrays.toString(text.split("d|f|b")));

要实现这一点,必须使用正则表达式。它会告诉你在什么基础上必须分开。 就像有或“|”操作符一样。如果你使用

   [a, c, e, g]

它将在a、b和c的基础上进行拆分。

另一个功能级别是番石榴:

Splitter splitOnStuff=Splitter.on(CharMatcher.anyOf(“|,&”))
.省略空字符串();
Iterable values=splitOnStuff.split(“value1和value2 | value3,value4”);

这就是您想要的:

Splitter splitOnStuff = Splitter.on(CharMatcher.anyOf("|,&"))
                                .omitEmptyStrings();

Iterable<String> values = splitOnStuff.split("value1&value2|value3,value4");
publicstaticvoidmain(字符串[]args)引发异常
{

char[]aroperators={'、'、'^'、'*'、'/'、'+'、'-'、'&'、'='、''='、'%'、'('、')'、'{'、'}'、';'}; String input=“foo^bar{hello}world”;//希望在“特殊”字符上拆分 String regex=“(”+新字符串(arOperators).replaceAll(“(”),“\\\$1 |”)。replaceAll(“\\\\$$”,”);//用\转义每个字符并转换为“或” System.out.println(regex);//仅供参考 String[]parts=input.split(regex); System.out.println(Arrays.toString(parts)); }
输出(包括仅供参考/兴趣的最终正则表达式):

(\,|\^*\/|\+-|\&=|\\\\\=|\\\=|\%|\(|\)|\{124;\}
[foo,bar,你好,world]

Goold ol'StringTokenizer也会这样做:

(\,|\^|\*|\/|\+|\-|\&|\=|\<|\>|\=|\%|\(|\)|\{|\}|\;)
[foo, bar, hello, world]
publicstaticvoidmain(字符串[]args){
字符串delim=“,^*/+-&==%(){};”;
String str=“foo^bar{hello}world”;
StringTokenizer tok=新的StringTokenizer(str,delim);
while(tok.hasMoreTokens()){
System.out.println(tok.nextToken());
}
}

char[]aroperators={'、'、'^'、'*'、'/'、'+'、'-'、'&'、'='、'='、'%'、'('、')'、'{'、'}'、';'};我不完全确定你在找什么。我提供的split方法接受正则表达式(regex)。关于正则表达式的一个很好的教程。索引14附近的非法重复以及如何使用正则表达式???在误导他人之前,先自己阅读正则表达式。上面是一个名为regex的字符串vairble,您可以将其称为dog或catwell@Shahzeb,
String.split(String)
将其参数解释为正则表达式。我想使用以下方法拆分字符串:char[]aroperators={','^','*','/','+','-','&','=',''=','%,'(','),'{','}',';'};伟大的它起作用了。谢谢这可以被接受为标准答案。
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]
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());
    }
}