close
摘自http://catchtest.pixnet.net/blog/post/21981758網站:
換行符號有兩種,一個叫Cr(carriage return),一個是Lf(line feed) 不巧的是,三大作業系統的換行符號定義都不一樣 |
而我用Java的String的split("\n")去做分割字串,也真的只對Lf(0x0a)有效。因為同時因應\n、\r、\r\n以及不正常的\n\r,其Regex應是\n\r?|\r\n?
在用Java IO套件的BufferedReader去readLine,發現它讀到\r或\n都會截止,萬一\r或\n也是資料的一部份就會有問題。最後寫法變成使用FileInputStream將檔案讀進byte array,遇到\r換成\\r,遇到\n換成\\n,等處理完之後再置換回來。此外,Java String使用Unicode表示法如:\u0041、\uA440。可以使用\u0001..\u0009、\u000B、\u000F等。可是偏不能使用這對換字完,也就是使用\u000A和\u000D會無法通過編譯。
全站熱搜