我今天遇到了一個問題與使用Spring下面的代碼:MessageFormat的Pattern.quote()的等價物是什麼?
String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
這是用來在我們的網站(的uPortal一個實例)的頂部得到一系列選項卡中顯示的標題。問題是,如果tabName
包含單引號,它會自動從結果中刪除。例如What's For Lunch
變爲Whats For Lunch
。
我已經找到了原因,這是因爲該方法中的第三個參數應該是在java.text.MessageFormat指定的格式。需要2個單引號。
因爲我們沒有傳入格式的任何參數,我可以安全地轉義tabName
中的任何特殊字符作爲第三個參數傳入之前。我可以手動與2個單引號這裏代替單引號,但我真的很喜歡的是像Pattern.quote()
,只爲MessageFormat
語言,這將保證來處理所有的逃跑。有這樣的事嗎?
沒有,但你可以安全地進行''''''''替換,然後用單引號括住整個東西。即使在單引號文本中也可以正確解釋加倍的單引號。 – VGR
謝謝,如果您將此添加爲答案,我會接受它。 – xdhmoore