如何将 Stringtokenizer 更改为 String
Posted
技术标签:
【中文标题】如何将 Stringtokenizer 更改为 String【英文标题】:How to change Stringtokenizer to String 【发布时间】:2013-10-24 16:07:49 【问题描述】:我的代码在这里想将 Stringtokenizer 更改为 String,因为我得到的信息是在句子中,我想将它缩减到某个部分。
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);
上,它给了我错误。
或者我还有其他方法可以减少句子并将其转换为整数吗?
【问题讨论】:
你需要把numberOfPost_text的内容和分隔符贴上去 我从 numberOfPost_text 得到的是“1,221(每天 0.9 个帖子/论坛帖子总数的 0.00%)”。我想要的是字符串中的 1,221 值。我的分隔符是空格 为此使用正则表达式,而不是字符串标记器 【参考方案1】:你可能想使用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 expression String
,因此要为字符指定多个选项,您需要将它们用 []
包围。指定;
、,
或:
:
String delimiters = "[;,:]";
【讨论】:
int numberOfPost = Integer.parseInt(numberOfPost_string.nextToken());
似乎有问题我在那条线上遇到了错误。你能帮我检查一下吗?抱歉,我是 Java 新手。
线程“AWT-EventQueue-0”java.lang.NumberFormatException 中的异常:对于输入字符串:java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 处 java.lang 处的“1,221” .Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at fyp.draft.pkg1.Design.jButton2ActionPerformed(Design.java:161) 等等
这正是它的意思。 1,221 不是有效的整数。 1221 是。
@PohSun 1,221
无法被 parseInt
解析。见this question。
@Dukeling。知道了。对不起。没有意识到这一点。我的错误已得到修复。抱歉,感谢您的宝贵时间。【参考方案2】:
将标记转换为字符串
String x = "";
StringTokenizer in = new StringTokenizer(str, ",;");
while(in.hasMoreTokens())
x = x + in.nextToken().toString();
System.out.print(x);
【讨论】:
以上是关于如何将 Stringtokenizer 更改为 String的主要内容,如果未能解决你的问题,请参考以下文章