Re: [J2SE] String padding 的問題

看板java作者 (godfat 真常)時間17年前 (2008/04/28 12:51), 編輯推噓5(502)
留言7則, 5人參與, 最新討論串8/9 (看更多)
忽然覺得我好無聊 @_@ 把目前板上全部的實作整理起來,得: godfat ~/p/t/padding> javac Padding.java godfat ~/p/t/padding> java -server Padding Padder_silver8250: 1297 ms. Padder_godfat_fill: 965 ms. Padder_infinitlee: 6550 ms. Padder_godfat_pre: 661 ms. Padder_pao0111: 628 ms. Padder_godfat_buf: 533 ms. ※ 引述《pao0111 (理想絕非空想)》之銘言: 最後一個 buf 是改自您的 @_@ class Padder_godfat_buf extends Padder{ private char[] buffer = new char[0]; public String pad(String str, char ch, int size){ if(buffer.length < size) buffer = new char[size]; if(size <= str.length()) return str; System.arraycopy(str.toCharArray(), 0, buffer, 0, str.length()); java.util.Arrays.fill(buffer, str.length(), size, ch); return new String(buffer); } } 測資是: private static long benchmark(Padder padder){ long start = System.currentTimeMillis(); for(int i=0; i<500000; ++i) padder.pad_spaces("abc", 50); for(int i=0; i<500000; ++i) padder.pad_spaces("abc", (int)(Math.random()*100)); for(int i=0; i<500000; ++i) padder.pad_spaces("012345678901234567890123456789012345678901234567890 123456789", (int)(Math.random()*100)+20); for(int i=0; i<500000; ++i) padder.pad_spaces("012345678901234567890123456789012345678901234567890 123456789012345678901234567890123456789012345678901234567890123456789", (int)(Math.random()*100)+50); return System.currentTimeMillis() - start; } Padder 是: abstract class Padder{ public String pad_spaces(String str, int size){ return pad(str, ' ', size); } public String pad(String str, char ch, int size){return "Not Implemented";} } 晚點用 C++/D 寫寫看 @_@ -- By Gamers, For Gamers - from the past Interplay -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.121.85

04/28 13:44, , 1F
泣...看到自己的程式,效能這麼差,好丟臉...
04/28 13:44, 1F

04/28 14:09, , 2F
唔, 沒什麼好泣的:P 除非您的程式很依賴這個功能, 才需要泣
04/28 14:09, 2F

04/28 14:46, , 3F
比短的話,您第一名...XD
04/28 14:46, 3F

04/28 16:15, , 4F
godfat 這句話真是 ... 囧
04/28 16:15, 4F

04/28 19:54, , 5F
g大真努力^^
04/28 19:54, 5F

04/28 22:06, , 6F
那下次寫長一點好了XD...男人最恨別人說他短
04/28 22:06, 6F

04/30 13:52, , 7F
比時間是最長啊,別擔心 XD
04/30 13:52, 7F
文章代碼(AID): #185LVSyI (java)
討論串 (同標題文章)
文章代碼(AID): #185LVSyI (java)