Javaでの改行コードの扱い方|各方法をコード付きでわかりやすく紹介

- SE
- Javaでの改行コードはどのように扱えばよいのでしょうか。
- PM
- 改行コードは環境に依存します。各環境ごとに順を追って学んでいきましょう。
この記事でわかること
Javaでの改行コードの扱い方について
今回は、Javaでの改行コードの扱い方について説明します。
改行コードは環境に依存します。
1 2 3 |
Windows:CR+LF(\r\n) Linux:LF(\n) Mac OS X(10以降):LF(\n) |
ここでは、改行コードの
・出力
・取得
・分割
・削除
・置換
・統一
・検索
について説明します。
Javaでの改行コードの扱い方に興味のある方はぜひご覧ください。
出力
Javaでの改行コードの出力方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) throws Exception { // 文字列中に改行コードを差し込む String str = ""This\nis\r\nnewline\nsample\r\ncode.""; // 結果出力 System.out.println(str); } } |
実行結果は以下のようになります。
1 2 3 4 5 |
This is newline sample code. |
このように改行コードを出力します。
取得
Javaでの改行コードの取得方法について紹介します。
環境に応じた改行コードを取得できます。
System.lineSeparatorメソッドを使用する方法と、System.getPropertyメソッドで””line.separator””を指定して取得する方法があります。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Main { public static void main(String[] args) throws Exception { // 改行コードの取得 String newline_code_1 = System.lineSeparator(); String newline_code_2 = System.getProperty(""line.separator""); String str = ""line1"" + newline_code_1 + ""line2"" + newline_code_1; System.out.println(str); str = ""line1"" + newline_code_2 + ""line2"" + newline_code_2; System.out.println(str); } } |
実行結果は以下のようになります。
1 2 3 4 5 |
line1 line2 line1 line2 |
このように、環境に応じた改行コードを取得できます。
分割
Javaでの改行コードの分割方法について紹介します。
splitメソッドに改行コードを指定することで、文字列を改行コードで分割できます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Main { public static void main(String[] args) throws Exception { String str = ""This\nis\nnewline\nsample\ncode.""; // 改行コードで分割 String[] array = str.split(""\n""); // データの出力 for (String data : array) { System.out.println(data); } } } |
実行結果は以下のようになります。
1 2 3 4 5 |
This is newline sample code. |
削除
Javaでの改行コードの削除方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) throws Exception { String str = ""\r\n\n abc \r\n\n""; System.out.println(""str["" + str + ""]""); // trimで両端の改行コードを削除 System.out.println(""str.trim["" + str.trim() + ""]""); } } |
実行結果は以下のようになります。
1 2 3 4 5 6 |
str[ abc ] str.trim[abc] |
trimメソッドで文字列両端の改行コードを削除できます。
置換
Javaでの改行コードの置換方法について紹介します。
replaceAllメソッドで改行コードを削除できます。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) throws Exception { String str = ""This\nis\r\nnewline\nsample\r\ncode.""; // 改行コードの置換 String replaced = str.replaceAll(""[\r\n]"", """"); System.out.println(replaced); } } |
実行結果は以下のようになります。
1 |
Thisisnewlinesamplecode. |
統一
改行コードが混在している場合、統一したほうが処理しやすいです。
※1種類の改行コードのみをケアすればよいためです。
Javaでの改行コードの統一方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 |
public class Main { public static void main(String[] args) throws Exception { String str = ""This\nis\r\nnewline\nsample\r\ncode.""; // 改行コードの統一 String replaced = str.replaceAll(""\\r\\n|\\r|\\n"", ""\r\n""); System.out.println(replaced); } } |
実行結果は以下のようになります。
1 2 3 4 5 |
This is newline sample code. |
replaceメソッドで、すべての改行コードを””\r\n””に統一しています。
このように、改行コードを統一できます。
検索
Javaでの改行コードの検索方法について紹介します。
正規表現の「.」は任意の文字にマッチします。しかし、デフォルトでは改行コードにはマッチしません。
「.」を改行コードにもマッチさせたい場合は、Pattern.compileメソッドの第2引数に「Pattern.DOTALL」を指定します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) throws Exception { Matcher matcher; // 通常の方法 matcher = Pattern.compile(""abc.123"").matcher(""abc\n123""); System.out.println(matcher.matches()); // Pattern.DOTALLを付与 matcher = Pattern.compile(""abc.123"", Pattern.DOTALL).matcher(""abc\n123""); System.out.println(matcher.matches()); } } |
実行結果は以下のようになります。
1 2 |
false true |
- SE
- Javaでの改行コードの扱い方について理解することができました。
- PM
- 出力や取得などの環境に合わせて、実際に改行コードを使用してみましょう。
まとめ
いかがでしたでしょうか。Javaでの改行コードの扱い方について説明しました。改行コードは環境に依存します。
ここでは、改行コードの、出力、取得、分割、削除、置換、統一、検索方法について紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。