案件にて「この移行データには改行コードがCRLFだったり、LFだったりするデータが入ってくるので考慮してください」と言われました。
いやいやいや、移行するときにデータ変換して統一してよ!!っと思いましたが、政治的に負けて対応することになりました。。。
作成したコードは以下です。
CRをブランクに変換した後にLFでsplitしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/** * 文字列を改行コードで分割して文字列配列を返す. * 改行コードにCRLF、LFが混在していても処理できるように * 一旦CR(\r)をブランクに置換したあと、LFで分割する * * @param str 処理対象文字列 * @return 処理済み文字列配列 */ public static String[] stringSplitWithLFandCRLF(String str) { // CRをブランクに置換する str = str.replace("\r", ""); String[] splitedStr = str.split("\n"); return splitedStr; } |
こちらのコードは以下のGithubリポジトリにも置きました。
my-java-snipet/MyStringUtil.java at main · glasses-se-hub/my-java-snipet · GitHub
あとから確認したら、String.split()でも複数文字で文字列分割できるらしいので、そっちでもよかったかも。
でもいいんですが、動くし、あとから見る人にとってはこっちの方がわかりやすいと思う!!ことにする(笑)