看板 java 關於我們 聯絡資訊
※ 引述《realmeat (真肉)》之銘言: : ※ 引述《psplay (亂世中一個小小書僮)》之銘言: : public static String shuffffffffffffle(String in){ : if(in == null) return null; : int len = in.length(); : StringBuilder strBuilder = new StringBuilder(); : for(int i=0; i<len; i++){ : int k = 0; : if(i % 2 == 0){ : k = i >>> 1; : }else{ : k = (len + i - 1 + 2*(len%2)) >>> 1 ; : } : strBuilder.append(in.substring(k, k)); : } : return strBuilder.toString(); : } : 請享用 純粹好奇, 這樣寫是單純想搞原po還是平常真的就用這種方式寫code? 例如今天題目突然變成切三等份後洗牌 (原本是切兩等分) 不就等於要重寫? 甚至維護的人會看不懂? 順便借這個機會問問大家 clean code 的粒度會到多細 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.192.133 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1412249818.A.FF9.html
carylorrk: 解 online judge 不是都是這樣的嗎 XD 10/02 20:10
HuangJC: 很簡潔了啊;讓我想到以前讀'字串指令'函式的source code 10/02 23:38
HuangJC: 高手都在比簡潔的.. 10/02 23:38
HuangJC: 我還看過 swap(a,b) 的寫法是 a^=b^=a^=b, 嚇到吐奶.. 10/02 23:39
HuangJC: 而 a=a-a (其實就是 a=0),這種我比較不懂幹麻要這樣整人 10/02 23:40
HuangJC: 不過公司寫加密模組的同事就會這樣,故弄玄虛.. 10/02 23:42
cyclone350: 我指的不是這種簡潔... 是另外一種... 10/02 23:48
psplay: 是說我的code還是r大的code阿XD 10/02 23:59
psplay: 我是剛好沒事用5~6分鐘寫出來der Q_Q 10/03 00:00
psplay: 而且真的比不上版上一群鬼神的code XD 10/03 00:00
LPH66: 四樓提的那個東西很有趣, 它在 C/C++ 是未定義行為 10/03 00:42
LPH66: 但是在 Java 裡是確實會把兩個變數交換的 10/03 00:42
LPH66: 不過以編譯器的角度來看傳統交換寫法比較能編出"快"的程式 10/03 00:45
HuangJC: 未定義?我是在 C++ 看到的,而且我想這相容性應到達 C 10/03 00:48
HuangJC: 只要是整數型變數就應該有用,浮點數未必可以,沒測過 10/03 00:49
HuangJC: 基本上這寫法不快,而且出現在微軟範例程式中;我一直以 10/03 00:50
HuangJC: 為範例程式要簡單,目的是給你學,不是炫技;但我被閃到 10/03 00:51
HuangJC: 了。合理猜測是微軟大了,管不住太多員工的品質 10/03 00:51
HuangJC: 各模組分切或外包,偶爾會有奇怪的東西出現.. 10/03 00:51
HuangJC: java 有 >>> 運算子? 10/03 00:56
LPH66: 在 C/C++ 未定義這件事可以看我這篇 #1Deo3lyi (C_and_CPP) 10/03 00:57
LPH66: 但是 java 規定運算元的效應要在運算子計算前結算完畢 10/03 00:57
LPH66: 所以在 java 上它是確實可以運作的沒錯 10/03 00:57
LPH66: java 應該沒有 unsigned shift 吧? 連無號數都沒有了 10/03 00:59
LPH66: 囧, 我弄錯了...java 還有另一條規定是先左後右 10/03 01:00
LPH66: 所以 a^=b^=a^=b 這個寫法在 java 正好會變成我那篇文中 10/03 01:01
LPH66: 會把值炸成 0 的那個順序, 所以這在 java 是不能用的 10/03 01:01
HuangJC: 文章已消失? 10/03 01:14
LPH66: 在 C_and_CPP 版, 不在這個版 10/03 01:23
HuangJC: 喔,我把括號內,當成是文章標題,難怪再找一次也沒有.. 10/03 01:36
AI3767: java有個 >>> 運算. 另外還有個隱藏版的 無號數 可以使用 10/03 01:43
realmeat: 單然是搞原po啊 =3=y~ 10/03 09:37
psplay: 太銷魂了XD 10/03 09:47