답변:
line.separator 특성 외에도 java 1.5 이상 및 String.format (또는 기타 형식화 메소드)을 사용하는 경우 다음 %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 를 참조하십시오.
%
사용자 입력 내용 이 포함되어 있으면 이것을 사용하지 마십시오 !
String.format(s + "%n")
쉽게 해결할 수 있습니다 String.format("%s%n", s)
. 사용자 입력을 형식 본문으로 (와 같은 방식으로 eval()
) 포함시키는 것은 항상 위험합니다 .
Java 7에는 이제 System.lineSeparator()
메소드가 있습니다.
lineSeperator(int)
내가 종종 한 번에 2를 사용하는 것을 알기 때문에 몇 가지 줄 구분자를 반환 하는 오버로드 된 메소드를 제공하는 것이 좋을 것입니다 .
String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
줄 바꿈을 파일에 쓰려고하면 BufferedWriter의 newLine () 메서드를 사용하면됩니다.
평민 - 랭 라이브러리라는 사용할 수있는 상수 필드가 SystemUtils.LINE_SEPARATOR을
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
위의 스 니펫에는 플랫폼에 관계없이 새 줄로 구분 된 두 개의 문자열이 있습니다.
BufferedWriter
인스턴스를 사용 하여 파일에 쓰는 경우 newLine()
해당 인스턴스 의 방법을 사용하십시오 . 파일에 새 줄을 쓰는 플랫폼 독립적 인 방법을 제공합니다.
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( );
string + string
" 과 같은 주장을하기 전에 항상 메트릭을 수행하십시오 .