Câu trả lời:
Ngoài thuộc tính line.separator, nếu bạn đang sử dụng java 1.5 trở lên và String.format (hoặc các phương thức định dạng khác), bạn có thể sử dụng %n
như trong
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 ^^
Xem API Java 1.8 cho Trình định dạng để biết thêm chi tiết.
%
từ đầu vào của người dùng!
String.format(s + "%n")
dễ dàng được giải quyết bằng String.format("%s%n", s)
. Sẽ luôn có rủi ro khi liên quan đến đầu vào của người dùng dưới dạng cơ thể định dạng (theo cùng một cách eval()
).
Java 7 bây giờ có một System.lineSeparator()
phương thức.
lineSeperator(int)
, trả về một số số bộ tách dòng, vì tôi thường thấy mình sử dụng 2 cái cùng một lúc.
String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
Nếu bạn đang cố gắng viết một dòng mới vào một tệp, bạn chỉ cần sử dụng phương thức newLine () của BufferedWriter .
Điều này cũng có thể : String.format("%n")
.
Hoặc String.format("%n").intern()
để lưu một số byte.
\r\n
Các commons-lang thư viện có một trường liên tục có sẵn gọi là SystemUtils.LINE_SEPARATOR
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
Đoạn mã trên sẽ có hai chuỗi được phân tách bằng một dòng mới không phân biệt nền tảng.
Nếu bạn đang ghi vào một tệp, sử dụng một BufferedWriter
thể hiện, hãy sử dụng newLine()
phương thức của thể hiện đó. Nó cung cấp một cách độc lập với nền tảng để viết dòng mới trong một tệp.
Tránh nối các chuỗi bằng String + String, v.v., thay vào đó hãy sử dụng 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( );
string + string
".