StringUtils过载斩波方法

时间:2018-06-15 13:53:31

标签: java apache-stringutils

我想重载StringUtils的chop方法,如果它是反斜杠(\),则删除最后一个字符。

是否可能使功能过载或我需要使用if条件?

2 个答案:

答案 0 :(得分:4)

为什么不这样呢?

StringUtils.removeEnd(s,"\\")

答案 1 :(得分:3)

是的,请使用if语句。你无法覆盖静态方法,无论如何创建它自己的类都是太过分了。

我有一个我个人喜欢的替代方案:

public static String chopIf(Predicate<String> p, String s) {
    if (p.test(s)) {
        return s.substring(0, s.length()-1); //or StringUtils.chop(s)
    }
    return s;
}

public static void main(String[] args) {
    String test = "qwert\\";
    System.out.println(chopIf(s -> s.endsWith("\\"), test));
}

这样的事情。然后你可以将它用于任何角色。根据需要调整它。