2013-10-24 52 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);