回答編集履歴

2

プラットフォームごとに改行文字列が異なる

2020/02/18 03:41

投稿

xebme
xebme

スコア1089

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- 申し訳ないので、改行文字列の別の取得方法を追記します。
53
+ 改行文字列の別の取得方法を追記します。
54
54
 
55
55
 
56
56
 
@@ -75,3 +75,17 @@
75
75
  System.out.println(line2);
76
76
 
77
77
  ```
78
+
79
+
80
+
81
+
82
+
83
+ **プラットフォームごとに改行文字列が異なる**
84
+
85
+
86
+
87
+ 念のため、プラットフォームごとに改行文字列が異なるのはご存じですね。[System#lineSeparator](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/System.html#lineSeparator--)
88
+
89
+
90
+
91
+ `System.lineSeparator()`はJava 7以降。その前は直接プロパティ`"line.separator"`の値を取得していました。Java 7以降のSystemクラスのソースコードを読めば内部に`"line.separator"`の値を保持しているのがわかります。

1

System.getProperty("line.separator");を追加

2020/02/18 03:40

投稿

xebme
xebme

スコア1089

test CHANGED
@@ -41,3 +41,37 @@
41
41
  System.out.println(line);
42
42
 
43
43
  ```
44
+
45
+ ここまではotnさんと同じ方法です。
46
+
47
+
48
+
49
+ **改行文字 - System.getProperty("line.separator");**
50
+
51
+
52
+
53
+ 申し訳ないので、改行文字列の別の取得方法を追記します。
54
+
55
+
56
+
57
+ ```Java
58
+
59
+ static final String LINE_SEPARATOR = System.getProperty("line.separator");
60
+
61
+ ```
62
+
63
+ この`LINE_SEPARATOR`を使うと次のようになります。
64
+
65
+
66
+
67
+ ```Java
68
+
69
+ String line2 = Arrays.stream(animals)
70
+
71
+ .map(e -> Arrays.stream(e).collect(Collectors.joining("/")))
72
+
73
+ .collect(Collectors.joining(LINE_SEPARATOR));
74
+
75
+ System.out.println(line2);
76
+
77
+ ```