2011-07-15 53 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()); 
    } 
} 
相關問題