【问题标题】:Parsing a string with NumberFormat使用 NumberFormat 解析字符串
【发布时间】:2013-08-25 16:22:54
【问题描述】:

来自这个java API

解析

公共抽象数字解析(字符串源, ParsePosition parsePosition)

如果可能,返回一个 Long(例如,在 [Long.MIN_VALUE, Long.MAX_VALUE] 并且没有小数),否则为 Double。如果 IntegerOnly 已设置,将在小数点处停止(或等效项;例如, 对于有理数“1 2/3”,将在 1) 之后停止。不扔 一个例外;如果没有对象可以解析,则索引不变!

(或等价物;例如,对于有理数“1 2/3”,将在 1 之后停止)

他们在说什么?解析这样的字符串有可能吗? 不过我也试过setParseIntegerOnly(false);,它只解析1。 他们对我一定错过的那句话是什么意思? 提前致谢。

【问题讨论】:

  • 它清楚地表明 Parse() 可以从字符串中获取一个数字。如果是像“1 2/3”这样的有理数(读取一和二乘三),它将将此字符串解析为 1(之后读取一个空格并忽略其后的所有内容)
  • @ManojAwasthi 请再次阅读我的问题

标签: java formatting number-formatting decimalformat


【解决方案1】:

解析将在以下位置停止:

  1. 设置 IntegerOnly 时的小数点
  2. 有理数中的空格

【讨论】:

  • 你能给我举个例子吗?以 2/3 的形式解析有理数?也没有空间不工作
  • @Rollerball Java 中没有表示有理数的平凡类。
  • @Rollerball 为什么错了?他们说 IntegerOnly 的情况等同于 rationl 的情况——在这两种情况下,解析都不完整,而是在约定的字符处停止。
  • 他们说:如果IntegerOnly is set这意味着如果不是,它会以其他方式运行。此外,还不清楚为什么提到2/3,因为没有办法解析它。 (无论如何)。
  • @Rollerball 他们说:如果设置了 IntegerOnly 或无法解析的等效有理数,例如2/3...因为无法解析只有1会被解析...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 2011-10-23
  • 2011-10-14
  • 2011-07-14
  • 2020-04-11
  • 2021-07-25
相关资源
最近更新 更多