문제

Java에서 플랫폼 의존적 Newline을 어떻게 얻습니까? 나는 사용할 수 없다 "\n" 어디에나.

도움이 되었습니까?

해결책

Separator 속성, Java 1.5 이상을 사용하는 경우 Separator 속성과 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   ^^

참조 Pormatter의 Java 1.8 API 자세한 사항은.

다른 팁

Java 7은 이제 a System.lineSeparator() 방법.

당신이 사용할 수있는

System.getProperty("line.separator");

라인 분리기를 얻으려면

파일에 Newline을 쓰려고하는 경우 BufferedWriter의 단순히 사용할 수 있습니다. Newline () 방법.

이것은 또한 가능하다 : String.format("%n").

또는 String.format("%n").intern() 바이트를 저장합니다.

그만큼 커먼즈 라인 라이브러리에는 일정한 필드가 있습니다 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