2011-07-15 50 views

回答

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] 
+0

太好了。有用。谢谢。这可以被接受为标准答案。 – guhai

1
String[] split(String) 

你可以把一个char[]成字符串String(char[]).

+0

炭[] arrOperators = { ' ' '^', '*', '/', '+', ' - ', '&', '=',' <', '>',“= ','%','(',')','{','}',';' }; – guhai

+0

我不完全确定你在找什么。我提供的拆分方法接受正则表达式(正则表达式)。 [Here's](http://www.regular-expressions.info/tutorial.html)一个关于正则表达式的好教程。 – Jeffrey

+0

非法重复索引附近14 – guhai

1

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

0

可能你想要这个。我不知道:

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

结果:

[a, c, e, g] 
0

你必须使用正则表达式,来实现这一目标。它会告诉你在哪个基础上你必须分开。 就像有OR“|”运营商。如果您使用

String regex = "a|b|c"; 
String[] tokens = str.split(regex) 

它将拆分在A,B &Ç基础。

+0

而你如何使用正则表达式?在误导他人之前先阅读自己的正则表达式。你的上面是一个名为regex的字符串,你可以称它为狗或猫 – Shahzeb

+0

@Shahzeb,'String.split(String)'将它的参数解释为一个正则表达式。 –

+0

我想分割一个字符串使用 – guhai

0

在功能上另一个层次了是番石榴的Splitter

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

Iterable<String> values = splitOnStuff.split("value1&value2|value3,value4"); 
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()); 
    } 
} 
相关问题