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에는 없는 기능을 갖추고 있습니다.
버전 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
'sourcecode' 카테고리의 다른 글
알고리즘: 어레이에서 중복 정수를 효율적으로 삭제하는 방법 (0) | 2022.08.30 |
---|---|
Vue.js 라이브러리를 가져오는 것과 Vue-CLI를 통해 설치하는 것의 차이점은 무엇입니까? (0) | 2022.08.30 |
Java에서 문자열이 숫자인지 확인하는 방법 (0) | 2022.08.30 |
VeValidate 연결 메서드: 필드에 이름이 있는 경우 필드에 "name" 또는 "data-vv-name" 속성이 없습니다. (0) | 2022.08.30 |
base64 이미지의 v-card-media (0) | 2022.08.29 |