Próbuję zrobić prostą logikę z java.text.MessageFormat:Zagnieżdżona klauzula wyboru w 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));
ze słowami: Jeśli pierwszy parametr jest większa niż 1 pisz „cześć”, jeśli jest ona większa niż 5, niż gdyby drugi parametr jest większy niż 1 "więcej niż jeden", jeśli drugi parametr jest większy niż 4 "więcej niż cztery".
znalazłem nikogo, mówiąc, że to jest niemożliwe, ale mam IllegalArgumentException:
Choice Pattern incorrect: 1<hello|5<{1,choice,1<more than one|4<more than four}
czy istnieje sposób mogę to zrobić? Dzięki!
Cały StackTrace:
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
można umieścić cały swój ślad stosu? – BaptisteL