Как получить зависящий от платформы символ новой строки?

StackOverflow https://stackoverflow.com/questions/207947

Вопрос

Как мне получить новую строку в Java, зависящую от платформы?я не могу использовать "\n" повсюду.

Это было полезно?

Решение

В дополнение к свойству line.separator, если вы используете Java 1.5 или более позднюю версию и Строка.формат (или другой форматирование методы) вы можете использовать %n как в

Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c); 
//Note `%n` at end of line                                  ^^

String s2 = String.format("Use %%n as a platform independent newline.%n"); 
//         %% becomes %        ^^
//                                        and `%n` becomes newline   ^^

См. API Java 1.8 для форматтера Больше подробностей.

Другие советы

В Java 7 теперь есть System.lineSeparator() метод.

Вы можете использовать

System.getProperty("line.separator");

чтобы получить разделитель строк

Если вы пытаетесь записать новую строку в файл, вы можете просто использовать BufferedWriter новая линия() метод.

Это также возможно: String.format("%n").

Или String.format("%n").intern() чтобы сэкономить несколько байт.

А Commons-Lang в библиотеке есть постоянное поле под названием SystemUtils.LINE_SEPARATOR

Если вы записываете в файл, используя BufferedWriter например, используйте newLine() метод этого экземпляра.Он обеспечивает независимый от платформы способ записи новой строки в файл.

StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

Приведенный выше фрагмент будет содержать две строки, разделенные новой строкой, независимо от платформы.

Избегайте добавления строк с помощью String + String и т. д., вместо этого используйте StringBuilder.

String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top