看板 java 關於我們 聯絡資訊
如標題 String s="........."; s.replaceAll("ToName", "王先生"); s.replaceAll("FromName", "資訊部"); s.replaceAll("SendTime", "2012/07/01"); 下略 印象中,java在處理這種狀況時 每次取代都會從新產生個字串物件出來 基於這一點,我會覺得,如果s的大小很大 (例如幾mb的文件) 以及取代的次數很多的話,會讓效率變得很糟糕 像這種狀況主要是用在套樣式的狀況 例如固定樣式的信件或是表格之類的 (replaceAll裡面有時候可能會用正規表示式之類的) 雖然目前沒遇到效能的問題 但覺得還是先把解決方法找到會比較好 請問有什麼方式,或是使用什麼物件可以處理這種狀況 或我根本是齊人憂天 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65
PsMonkey:那你自己用 StringBuffer.replace() 慢慢玩也可以...... 07/02 12:15
bitlife:正本清源,自己將所有pattern弄出一個FSM,然後在各個match 07/02 12:22
bitlife:state去將替換字串代入結果字串 07/02 12:24
bitlife:但若沒收費做這個效率改善或不做不會死,完全不值得這樣搞 07/02 12:26
LaPass:StringBuffer.replace() orz..... 這麼累還是算了吧..... 07/02 12:28
LaPass:看來適合閒的時候寫來玩,工作時就算了 = =" 07/02 12:31
PsMonkey:template engine 應該很多可以用.... 07/02 12:46
superlubu:十年前我就寫過邊讀檔邊replace還含格式指令的 template 07/02 12:48
superlubu:engine, 只能說當時我真的吃飽太撐。 07/02 12:49
LaPass:感謝關鍵字,用template engine下去找到蠻多東西的 XD 07/02 13:02
lovdkkkk:freemarker 或 velocity 都很好用 07/02 13:31
joetsai:樣板引擎的底層...應該也是replace吧!? 07/07 23:13
ClareQ:用apache common lang的StringUtils.replaceEach方法即可 07/08 20:11