簡體   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