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



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

802   9  

9 ответов:

В дополнение к линии.собственность разделитель, если вы используете 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   ^^

посмотреть JAVA 1.8 API for Formatter для более подробной информации.

можно использовать

System.getProperty("line.separator");

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

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

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

это тоже можно: String.format("%n").

или String.format("%n").intern() для сохранения некоторых байтов.

The 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( );

Comments

    Ничего не найдено.