CodeWars 여든 여섯 번째 문제

Updated:

Strip Comments

public static String stripComments(String text, String[] commentSymbols) {

    String[] split = text.split("\n");

    for(int i = 0; i < split.length; i++) {
        split[i] = removeComment(split[i], commentSymbols);
    }

    return String.join("\n", split);
}

private static String removeComment(String string, String[] commentSymbols) {

    int minIndex = Integer.MAX_VALUE;

    for(int i = 0; i < commentSymbols.length; i++) {
        int index = string.indexOf(commentSymbols[i]);
        if(minIndex > index && index >= 0) {
            minIndex = index;
        }
    }

    return minIndex == Integer.MAX_VALUE ? string.replaceAll("\\s+$", "") : string.substring(0, minIndex).replaceAll("\\s+$", "");
}
  • 문제는 쉬웠는데 마지막 문자열의 공백을 없애는 것이 지금까지 공부한 정규식이 빛을 바랬다.
  • \s+$ 의 의미는 문장의 항상 마지막 공백을 말하는 것으로 이것을 replace 해서 공백을 없앴다.