2016-02-27 24 views
3

下面是基於分隔符創建標記的代碼。這會給出令牌,但不會以令牌結果考慮分隔符。如果我們想在結果中包含分隔符,應該採用什麼方法。如何在結果中捕獲分隔符作爲標記

StringTokenizer tr= 
new StringTokenizer("Will you come, yes/no",",/"); 
while (tr.hasMoreElements()) 
System.out.println(tr.nextElement()+","); 

所以輸出應標記爲:

意志,你,來了,是的,/,無,

(而不是僅僅將,你來了,是,否,)

+0

我不知道我是否清楚地瞭解你的需求,但它會給你期待什麼,如果你的字符串是像'」你會來,是的,/,不是「' – user2004685

+0

而不是隻是」你會,來,是,不是「我想要的結果爲」會,你,來,是,/,沒有' – Aajan

回答

3

/不會作爲令牌之一,因爲它沒有被分隔符包圍。如果你想將它解析爲一個令牌,那麼你可以用分隔符來包圍它。

這裏是代碼片段:

public static void main (String[] args) 
{ 
    String sample = "Will you come,yes/no"; 
    StringTokenizer tr = new StringTokenizer(sample.replace(" ",",").replace("/",",/,"),","); 
    while (tr.hasMoreElements()) 
     System.out.println(tr.nextElement() + ","); 
} 

輸出:

Will, 
you, 
come, 
yes, 
/, 
no, 
+0

我需要它作爲威爾,你,是,來,是,/,不。空間應該被視爲象徵,並且,你來,應該是3個不同的標記。 – Aajan

+2

在這種情況下,您需要用分隔符替換空格。請檢查更新的解決方案。 – user2004685

+1

謝謝。我有一個解決方案使用「true」指標,例如:StringTokenizer st = new StringTokenizer(「Hello,World | of | Java」,「,|」,true); (st.hasMoreElements()) System.out.println(「Token:」+ st.nextElement()); – Aajan

相關問題