I am trying to make simple logic using java.text.MessageFormat:
MessageFormat cf = new MessageFormat( "{0,choice, 1<hello|5<{1,choice,1<more than one|4<more than four}}"); Object[] array = {3, 1}; System.out.println(cf.format(array));
With the words: if the first parameter is more than 1, print โhelloโ if it is more than 5 than if the second parameter is more than 1, print โmore than oneโ if the second parameter is more than 4 prints โmore than fourโ.
I did not find anyone who said that this is impossible, but I get an IllegalArgumentException:
Choice Pattern incorrect: 1<hello|5<{1,choice,1<more than one|4<more than four}
Is there any way to do this? Thanks!
Whole stack:
Exception in thread "main" java.lang.IllegalArgumentException: Choice Pattern incorrect: 1<hello|5<{1,choice,1<more than one|4<more than four} at java.text.MessageFormat.makeFormat(Unknown Source) at java.text.MessageFormat.applyPattern(Unknown Source) at java.text.MessageFormat.<init>(Unknown Source) at test.Test5.main(Test5.java:18) Caused by: java.lang.IllegalArgumentException at java.text.ChoiceFormat.applyPattern(Unknown Source) at java.text.ChoiceFormat.<init>(Unknown Source) ... 4 more
source share