문자열의 마지막 문자가 콤마(”,“)인 경우, 이 문자를 제거하는 방법에 대해서 알아보겠습니다.

1. String.substring()을 이용한 방법

String.substring(start, end)는 문자열에서 Index start에서 (end - 1)까지 범위의 문자열을 잘라서 리턴합니다.

다음과 같이 마지막 콤마 문자를 제거할 수 있습니다.

  • input.endsWith(",") : input 문자열의 마지막이 "," 문자로 끝나면 true 리턴
  • input.substring(0, input.length() - 1) : Index 0에서 Index (length -1) 이전 문자까지만 잘라서 리턴, 즉, 마지막 문자만 제거
public class Example {

    public static void main(String[] args) {

        String input = "apple,banana,orange,"; // 마지막 콤마가 있는 문자열

        // 문자열 마지막이 "," 일 때, Index 0 ~ (length -1) 범위 문자열만 가져옴
        if (input.endsWith(",")) {
            input = input.substring(0, input.length() - 1);
        }

        System.out.println("Result: " + input);
    }
}

Output:

Result: apple,banana,orange

2. StringBuilder.deleteCharAt()을 이용한 방법

deleteCharAt(index)는 StringBuilder가 갖고 있는 문자열에서 index의 문자를 제거합니다.

  • builder.deleteCharAt(input.length() - 1) : 문자열 마지막 Index(length - 1) 문자 제거

아래와 같이 마지막 문자열을 제거할 수 있습니다.

public class Example {

    public static void main(String[] args) {

        String input = "apple,banana,orange,"; // 마지막 콤마가 있는 문자열

        // 문자열 마지막이 "," 일 때, 마지막 Index 문자 제거
        if (input.endsWith(",")) {
            StringBuilder builder = new StringBuilder(input);
            builder.deleteCharAt(input.length() - 1);
            input = builder.toString();
        }

        System.out.println("Result: " + input);
    }
}

Output:

Result: apple,banana,orange

3. 정규표현식을 이용한 방법

정규표현식을 이용하여 문자열의 마지막 문자가 ","인 경우를 찾을 수 있습니다. 그리고 replaceAll()을 이용하여 이 부분을 "" 문자로 변경함으로써 제거할 수 있습니다.

  • compile(",$") : ”,“로 끝나는 문자열 패턴
  • pattern.matcher(input) : input 문자열에서 패턴과 일치하는 문자열 찾음
  • matcher.find() : 패턴과 일치하는 문자열이 있으면 true 리턴
  • matcher.replaceAll("") : 패턴과 일치하는 문자열을 ""으로 변경
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {

    public static void main(String[] args) {

        String input = "apple,banana,orange,"; // 마지막 콤마가 있는 문자열

        // 정규표현식으로 마지막 문자가 ","인 경우를 찾고, 제거
        Pattern pattern = Pattern.compile(",$");
        Matcher matcher = pattern.matcher(input);
        if (matcher.find()) {
            input = matcher.replaceAll("");
        }

        System.out.println("Result: " + input);
    }
}

Output:

Result: apple,banana,orange