我試圖做一個簡單的邏輯與java.text.MessageFormat中: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));
用的話:如果第一個參數是大於1頁的打印「你好」,如果大於5比如果如果第二個參數大於4打印「多於四個」,則第二個參數大於1打印「多於一個」。
我發現沒有人說這是不可能的,但我得到一個IllegalArgumentException:
Choice Pattern incorrect: 1<hello|5<{1,choice,1<more than one|4<more than four}
有沒有一種方法,我可以做到這一點?謝謝!
整個堆棧跟蹤:
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
你可以把你整個堆棧跟蹤:
所以,如果你寫這樣的模式代碼工作? – BaptisteL