Skip to main content

[Java] StringBuilder에서 글자 지우기

마지막 공백 제거하는 법


1. setLength()

StringBuilder sb = new StringBuilder("Hello World ");
if (sb.length() > 0 && sb.charAt(sb.length() - 1) == ' ') {
    sb.setLength(sb.length() - 1); // 마지막 문자 제거
}
System.out.println(sb.toString()); // Hello World

StringBuilder.setLength(int newLengt)는 말 그대로 전체 길이를 강제로 잘라내는 메서드이다.
즉, new Length로 지정한 길이까지만 남기고 그 뒤는 다 자른다.

이건 length() - 1이지까 마지막 문자 하나만 자르고 나머지는 남긴 코드이다.
코테에서 반복문써서 "단어 + 공백" 이렇게 마지막에 항상 " " 하나 붙는 구조면 setLength()가 가장 깔끔하다.


2. deleteCharAt()

StringBuilder sb = new StringBuilder("Hello World ");
if (sb.length() > 0 && sb.charAt(sb.length() - 1) == ' ') {
    sb.deleteCharAt(sb.length() - 1);
}
System.out.println(sb.toString()); // Hello World

if문 씀. 만약 sb의 길이가 0보다 크고, sb 마지막 문자열이 ' ' 공백이라면 마지막 문자열을 지워라


3. 연속된 공백 제거하는 법

StringBuilder sb = new StringBuilder("Hello World   ");
while (sb.length() > 0 && sb.charAt(sb.length() - 1) == ' ') {
    sb.deleteCharAt(sb.length() - 1);
}
System.out.println(sb.toString()); // Hello World

while문 씀. 해석해보면 sb의 길이가 0보다 크고, sb 마지막 문자열이 공백인 동안 마지막 문자열을 지워라