2013-10-24 84 views
1

我有我的代碼在這裏想要將Stringtokenizer更改爲字符串,因爲我得到的信息是在句子中,我想將其切割到某些部分。如何將Stringtokenizer更改爲字符串

StringTokenizer numberOfPost_string = new StringTokenizer(numberOfPost_text , delimiters); 

System.out.println(numberOfPost_string.nextToken()); 

int numberOfPost = Integer.parseInt(numberOfPost_string); 

我遇到的問題是在line int numberOfPost = Integer.parseInt(numberOfPost_string);它給我錯誤。

或者是否有其他方法可以減少句子並將其轉換爲整數?

+0

你需要張貼numberOfPost_text的內容和分隔符 – tom

+0

我從numberOfPost_text得到的是「1221(0.9帖每日/總論壇帖子的0.00%)「。我想要的是來自字符串的1,221值。我的分隔符是空格 –

+0

使用正則表達式,而不是字符串分詞器 – tom

回答

2

你可能想使用的nextToken返回值:

StringTokenizer numberOfPost_string = new StringTokenizer(numberOfPost_text , delimiters); 
int numberOfPost = Integer.parseInt(numberOfPost_string.nextToken()); 

您還可以使用split做到這一點:(雖然這可能是稍微低效率)

int numberOfPost = Integer.parseInt(numberOfPost_text.split(delimiters)[0]); 

請記住, split需要regular expressionString,因此要爲字符指定多個選項,您需要將它們包圍[]。要指定;,:

String delimiters = "[;,:]"; 
+0

似乎有問題'int numberOfPost = Integer.parseInt(numberOfPost_string.nextToken());' 我得到該行上的錯誤。你能幫我檢查一下嗎?對不起,我是Java新手。 –

+0

你有什麼錯誤? – Dukeling

+0

線程「AWT-EventQueue-0」中的異常java.lang.NumberFormatException:對於輸入字符串:「1,221」 \t at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) \t at java.lang.Integer。 parseInt函數(Integer.java:492) \t在java.lang.Integer.parseInt(Integer.java:527) \t在fyp.draft.pkg1.Design.jButton2ActionPerformed(Design.java:161)和多 –

0

到令牌轉換爲字符串

String x = ""; 
StringTokenizer in = new StringTokenizer(str, ",;"); 
while(in.hasMoreTokens()) { 
    x = x + in.nextToken().toString(); 
} 
System.out.print(x);