sourcecode

String Builder에 새 줄을 추가하는 방법

copyscript 2022. 8. 30. 22:24
반응형

String Builder에 새 줄을 추가하는 방법

나는 목표가 있다.

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에서 직접 값을 반환하는 메서드도 있습니다.

또 다른 옵션은 Apache Commons StrBuilder를 사용하는 것입니다.이것은 StringBuilder에는 없는 기능을 갖추고 있습니다.

StrBuilder.appendLn()

버전 3.6에서 StrBuilder는 동일한 기능을 가진 TextStringBuilder를 위해 폐지되었습니다.

탈출은 다음과 같이 해야 합니다.\,것은 아니다./.

그렇게r.append('\n');또는r.append("\n");동작합니다(StringBuilder에 대한 메서드가 과부하되었습니다.char그리고.String를 입력합니다).

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

사용할 수 있습니다.line.seperator에 새로운 행을 추가하기 위해

코틀린에게는

StringBuilder().appendLine("your text");

자바 질문이지만 Kotlin에 대한 첫 번째 구글 결과이므로 도움이 될 수 있습니다.

행 구분 문자를 사용할 수도 있습니다.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."));

K 말고도.StringBuilderPlus 클래스를 만들고 어댑터 패턴을 사용하여 최종 클래스를 확장하는 S의 응답입니다. Generics를 사용하여 StringBuilderPlus 개체를 새로운 appendLine 메서드와 appendLine 메서드로 반환하면 StringBuilder의 많은 추가 메서드를 모든 유형에 사용할 수 있으며 문자열 기능을 되찾을 수 있습니다.다음과 같이 여러 개의 추가 명령을 함께 사용합니다.

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;
    }
}

그러면 원래 String Builder 클래스와 똑같이 사용할 수 있습니다.

StringBuilderPlus stringBuilder = new StringBuilderPlus();
stringBuilder.appendLine("test")
    .appendLine('c')
    .appendLine(1)
    .appendLine(1.2)
    .appendLine(1L);

stringBuilder.toString();

언급URL : https://stackoverflow.com/questions/14534767/how-to-append-a-newline-to-stringbuilder

반응형