diff options
Diffstat (limited to 'icu/src/main')
-rw-r--r-- | icu/src/main/java/com/ibm/icu4jni/util/Resources.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/icu/src/main/java/com/ibm/icu4jni/util/Resources.java b/icu/src/main/java/com/ibm/icu4jni/util/Resources.java index 8f09029..efc55d1 100644 --- a/icu/src/main/java/com/ibm/icu4jni/util/Resources.java +++ b/icu/src/main/java/com/ibm/icu4jni/util/Resources.java @@ -343,8 +343,13 @@ public class Resources { localeData.fullTimeFormat = localeData.fullTimeFormat.replace('v', 'z'); } if (localeData.numberPattern != null) { - String numberPattern = localeData.numberPattern; - localeData.integerPattern = numberPattern.substring(0, numberPattern.indexOf('.')); + // The number pattern might contain positive and negative subpatterns. Arabic, for + // example, might look like "#,##0.###;#,##0.###-" because the minus sign should be + // written last. Macedonian supposedly looks something like "#,##0.###;(#,##0.###)". + // (The negative subpattern is optional, though, and not present in most locales.) + // By only swallowing '#'es and ','s after the '.', we ensure that we don't + // accidentally eat too much. + localeData.integerPattern = localeData.numberPattern.replaceAll("\\.[#,]*", ""); } return localeData; } |