mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-07 22:44:49 +00:00
ICU-9524 Making Java ListFormatter behave correctly with any order of parameters
X-SVN-Rev: 32303
This commit is contained in:
parent
f6ff5f1b9a
commit
4c5fe60f3e
2 changed files with 19 additions and 3 deletions
|
@ -147,9 +147,11 @@ final public class ListFormatter {
|
|||
if (i0 < 0 || i1 < 0) {
|
||||
throw new IllegalArgumentException("Missing {0} or {1} in pattern " + pattern);
|
||||
}
|
||||
return i0 < i1
|
||||
? pattern.substring(0, i0) + a + pattern.substring(i0+3, i1) + b + pattern.substring(i1+3)
|
||||
: pattern.substring(0, i1) + a + pattern.substring(i1+3, i0) + b + pattern.substring(i0+3);
|
||||
if (i0 < i1) {
|
||||
return pattern.substring(0, i0) + a + pattern.substring(i0+3, i1) + b + pattern.substring(i1+3);
|
||||
} else {
|
||||
return pattern.substring(0, i1) + b + pattern.substring(i1+3, i0) + a + pattern.substring(i0+3);
|
||||
}
|
||||
}
|
||||
|
||||
/** JUST FOR DEVELOPMENT */
|
||||
|
|
|
@ -63,6 +63,20 @@ public class ListFormatterTest extends TestFmwk {
|
|||
checkData(ListFormatter.getInstance(ULocale.JAPANESE), JapaneseTestData);
|
||||
}
|
||||
|
||||
String[] outOfOrderTestData = {
|
||||
"",
|
||||
"A",
|
||||
"B after A",
|
||||
"C in the last after B after the first A",
|
||||
"D in the last after C after B after the first A",
|
||||
"E in the last after D after C after B after the first A"
|
||||
};
|
||||
public void TestPatternOutOfOrder() {
|
||||
ListFormatter formatter = new ListFormatter("{1} after {0}", "{1} after the first {0}", "{1} after {0}",
|
||||
"{1} in the last after {0}");
|
||||
checkData(formatter, outOfOrderTestData);
|
||||
}
|
||||
|
||||
String[] RootTestData = {
|
||||
"",
|
||||
"A",
|
||||
|
|
Loading…
Add table
Reference in a new issue