【问题标题】:How to change Stringtokenizer to String如何将 Stringtokenizer 更改为 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 值。我的分隔符是空格
  • 为此使用正则表达式,而不是字符串标记器

标签: java string stringtokenizer


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-03
    • 2019-09-16
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多