< prev index next >

src/java.base/share/classes/java/text/CompactNumberFormat.java

Print this page
rev 54198 : [mq]: 8220224

@@ -834,11 +834,12 @@
         for (int index = 0; index < pattern.length();) {
             char ch = pattern.charAt(index++);
             if (ch == QUOTE) {
                 ch = pattern.charAt(index++);
                 if (ch == MINUS_SIGN) {
-                    ch = symbols.getMinusSign();
+                    sb.append(symbols.getMinusSignText());
+                    continue;
                 }
             }
             sb.append(ch);
         }
         return sb.toString();

@@ -857,15 +858,18 @@
         for (int index = 0; index < pattern.length();) {
             char ch = pattern.charAt(index++);
             if (ch == QUOTE) {
                 ch = pattern.charAt(index++);
                 if (ch == MINUS_SIGN) {
-                    ch = symbols.getMinusSign();
+                    String minusText = symbols.getMinusSignText();
                     FieldPosition fp = new FieldPosition(NumberFormat.Field.SIGN);
                     fp.setBeginIndex(stringIndex);
-                    fp.setEndIndex(stringIndex + 1);
+                    fp.setEndIndex(stringIndex + minusText.length());
                     positions.add(fp);
+                    stringIndex += minusText.length();
+                    affix.append(minusText);
+                    continue;
                 }
             }
             stringIndex++;
             affix.append(ch);
         }
< prev index next >