繁体   English   中英

如何在GWT中使用特定语言环境将字符串转换为Double?

[英]How do I convert a String to Double in GWT using a specific locale?

在Java中,这很容易做到:

NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
myNumber = nf.parse(myString);

但是,我似乎无法在GWT中执行相同的操作。 首先,我将语言环境合并到MyModule.gwt.xml中

<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="sl_SI"/>

还存在NumberFormat类:com.google.gwt.i18n.client.NumberFormat; 使用“默认”语言环境。 此处的默认表示固定的语言环境,与“ en_US”非常相似,浏览器或应用程序未选择默认的语言环境。

似乎没有办法将NumberFormat设置为接受其他语言环境。 坦白说,那我什么都没看到。

我想念什么吗?

尝试将<meta name='gwt:property' content='locale=sl_SI' />到html主机页面

这是为什么这样工作的解释: https : //stackoverflow.com/a/16295300/572830

以下是更广泛和详细的说明: https : //developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocale

不幸的是,不是。 客户端上特定于语言环境的代码在GWT中非常有限。 您可以尝试使用本机JavaScript(具有所有缺点)。

但是我发现在这种情况下仅调用服务器方法会更容易。 首先,我通常不必转换许多值,并且我需要此方法的速率很低,因此在这种情况下可以承受通过网络发送字节的过大杀伤力。

如果这不是您的选择,而您只需要能够解析这样的数字,我建议您将语言环境的格式分开。 如果您采用这种方法,这比看起来容易:

  • 找出小数点(逗号或点)。
  • 创建一个与任何非小数点或数字匹配的否定模式,即: '[^0-9' + decimalPoint + ']'
  • 使用此模式从字符串中删除任何匹配的内容
  • 用替换小数点.

这允许解析。 对于格式化,我没有一个好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM