2012-05-22 31 views
-2

我需要分裂根據其也可以有多種性格特徵等給出波紋管多個令牌的字符串,StringTokenizer用於JAVA中的多個多註釋器標記?

字1:字詞2 | WORD3 || word4 |的word5 ||| word6 | word7

我需要根據':','|','||','|||'標記上面的字符串。 與StringTokenizer的是否有可能或還有什麼用正則表達式分割?? ..記得來標記它的代碼,我也需要得到數組中的令牌......

+1

你怎麼能不同意''' '||' '|||' ? –

+0

其實我想要令牌'|','||'也在結果數組... ...和word1,word2是數據庫表中的列名...我需要將結果作爲value1:value2 | value3 || value4 | value5 ||| value6 | value7 from DB值.. –

+0

您需要結果中的**分隔符**嗎? –

回答

1

您可以使用StringUtils郎API。

請查找相同的here的Javadocs。

它有以下幾種方法 -

  1. Substring/Left/Right/Mid - 空安全子提取
  2. SubstringBefore/SubstringAfter/SubstringBetween - 串相對於其他字符串
0

這是可能的StringTokenizer的提取。但這必須是多步驟的過程。

-1

我不知道是否有API available.you可以解決如下。

步驟應該是。

1.take字符串

2.define正則表達式來進行更換//你應該知道他們提前

3.loop所有表達式

4.replace與空間的每一個表情。

5.現在你可以使用String標記器了。

String str="word1:word2|word3||word4|word5|||word6|word7"; 
    String[] tokens={"[:]","[|]{3}","[|]{2}","[|]"}; 
    for (int i = 0; i < tokens.length; i++) { 
     str=str.replaceAll(tokens[i], " "); 
     System.out.println(str); 
    } 
0

很明顯,你可以拆分這樣的字符串:

line.split ("[:|]+") 
res113: Array[java.lang.String] = Array(word1, word2, word3, word4, word5, word6, word7) 

但是,什麼是分隔符?那麼 - 顯然是相反的:

line.split ("[^:|]+") 
res114: Array[java.lang.String] = Array("", :, |, ||, |, |||, |)