summaryrefslogtreecommitdiffstats
path: root/icu/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'icu/src/main')
-rw-r--r--icu/src/main/java/com/ibm/icu4jni/util/Resources.java9
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;
}