나는 StringBuilder
물건을 가지고있다
StringBuilder result = new StringBuilder();
result.append(someChar);
이제 개행 문자를에 추가하고 싶습니다 StringBuilder
. 내가 어떻게 해?
result.append("/n");
작동하지 않습니다. 그래서 유니 코드를 사용하여 줄 바꿈을 작성하려고했습니다. 도움이 되겠습니까? 그렇다면 어떻게 추가합니까?
나는 StringBuilder
물건을 가지고있다
StringBuilder result = new StringBuilder();
result.append(someChar);
이제 개행 문자를에 추가하고 싶습니다 StringBuilder
. 내가 어떻게 해?
result.append("/n");
작동하지 않습니다. 그래서 유니 코드를 사용하여 줄 바꿈을 작성하려고했습니다. 도움이 되겠습니까? 그렇다면 어떻게 추가합니까?
답변:
그것은해야한다
r.append("\n");
하지만 다음과 같이하는 것이 좋습니다.
r.append(System.getProperty("line.separator"));
System.getProperty("line.separator")
java에서 시스템 종속적 개행을 제공합니다. 또한 Java 7에는 값을 직접 반환하는 메소드가 있습니다.System.lineSeparator()
StringBuilder#appendLine()
방법 이없는 이유 입니다.
System.lineSeparator()
문서에는 "시스템 종속 행 구분자 문자열을 반환합니다."라고 언급되어 있습니다. 이것은 플랫폼 독립적이지 않습니다. 기본 운영 체제에서 사용할 문자열을 작성해야하는 경우이 코드를 사용하십시오 '\n'
. 그렇지 않으면을 사용하십시오 .
System.lineSeparator()
당신이 아닌 휴대용 자원 (기본 운영 체제이며, 자원이 특정)을 다룰 때 사용한다. Windows (\ r \ n) 또는 Unix (\ n)에서 Java를 실행하는 경우 값이 다릅니다. 항상 사용 System.lineSeparator()
하면 휴대용 파일이 아닌 파일이 생성됩니다.
appendLine
과부하 가 없습니다 StringBuilder
.
또 다른 옵션은 StringBuilder에없는 기능을 가진 Apache Commons StrBuilder를 사용하는 것입니다.
버전 3.6부터 StrBuilder는 동일한 기능을 가진 TextStringBuilder 를 위해 더 이상 사용되지 않습니다.
deprecated
. 를 사용하십시오 org.apache.commons.text.TextStringBuilder
.
StringBuidler와 유사한 원본 클래스를 만들고 appendLine (String str) 메서드를 호출하여 줄을 추가 할 수 있습니다.
public class StringBuilderPlus {
private StringBuilder sb;
public StringBuilderPlus(){
sb = new StringBuilder();
}
public void append(String str)
{
sb.append(str != null ? str : "");
}
public void appendLine(String str)
{
sb.append(str != null ? str : "").append(System.getProperty("line.separator"));
}
public String toString()
{
return sb.toString();
}
}
용법:
StringBuilderPlus sb = new StringBuilderPlus();
sb.appendLine("aaaaa");
sb.appendLine("bbbbb");
System.out.println(sb.toString());
콘솔:
aaaaa
bbbbb
String.format
(참조 java.util.Formatter
) 에서 줄 구분 문자를 사용할 수도 있습니다. 이는 플랫폼과 무관합니다.
즉 :
result.append(String.format("%n", ""));
줄 간격을 더 추가해야하는 경우 다음을 사용하십시오.
result.append(String.format("%n%n", ""));
StringFormat
끝에 줄 바꿈을 사용하여 전체 문자열의 형식을 지정할 수도 있습니다 .
result.append(String.format("%10s%n%n", "This is my string."));
코 틀린에게
StringBuilder().appendln("your text");
이것은 자바 질문이지만, 이것은 kotlin의 첫 번째 Google 결과이기도합니다.
KS의 StringBuilderPlus 클래스 작성 및 어댑터 클래스를 사용하여 최종 클래스 확장에 대한 응답 외에도 제네릭을 사용하고 새로운 append 및 appendLine 메소드에서 StringBuilderPlus 오브젝트를 리턴하면 StringBuilders를 사용하여 많은 추가 메소드를 사용할 수 있습니다 아래에 표시된 것처럼 여러 개의 추가 명령을 함께 문자열로 묶는 기능을 회복하면서 모든 다른 유형에 대해
public class StringBuilderPlus {
private final StringBuilder stringBuilder;
public StringBuilderPlus() {
this.stringBuilder = new StringBuilder();
}
public <T> StringBuilderPlus append(T t) {
stringBuilder.append(t);
return this;
}
public <T> StringBuilderPlus appendLine(T t) {
stringBuilder.append(t).append(System.lineSeparator());
return this;
}
@Override
public String toString() {
return stringBuilder.toString();
}
public StringBuilder getStringBuilder() {
return stringBuilder;
}
}
그런 다음 이것을 원래 StringBuilder 클래스와 똑같이 사용할 수 있습니다.
StringBuilderPlus stringBuilder = new StringBuilderPlus();
stringBuilder.appendLine("test")
.appendLine('c')
.appendLine(1)
.appendLine(1.2)
.appendLine(1L);
stringBuilder.toString();
Android의 경우 읽기 및 쓰기에 사용하십시오!
private void writeToFile(String message) {
try {
OutputStream outputStream = openFileOutput("todoList.txt",Context.MODE_PRIVATE);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(message);
outputStreamWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private String readFromFile() throws IOException {
String result = "";
InputStream inputStream = openFileInput("todoList.txt");
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String tempString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (tempString = bufferedReader.readLine()) != null ) {
stringBuilder.append(tempString);
stringBuilder.append("\n");
}
inputStream.close();
result = stringBuilder.toString();
}
return result;
}
"\n"
하거나System.getProperty("line.separator")
.