这是自定义过滤器最有效的方法吗?

时间:2017-08-15 22:42:46

标签: java replace filter

我问我的代码是否是自定义过滤器的常用且最有效的方法。用户可以选择可以使用/不使用的字符。脏文本可能很长,所以我必须看到我的代码需要尽可能高效:

    String dirtyText = "iamacleantext<>>";
    String allowedCharacters = "abcdefhijk$<>/lmnoqrgstuvwxyz";

    String result = dirtyText.replaceAll("[" + allowedCharacters + "]","");

    if (result.isEmpty()) {
        System.out.println("Ok, your text can be used");
    } else {
        System.out.println("Sorry the text contains not allowed characters");
    }

非常感谢能够对此有更多了解的人

1 个答案:

答案 0 :(得分:2)

been many questions关注String.contains与正则表达式。根据大多数线程,很明显正则表达式性能较差。另一种方法(对第一个非法角色采取纾困):

private static boolean check(String dirtyText) {
    String allowedCharacters = "abcdefhijk$<>/lmnoqrgstuvwxyz";
    for (int i=0; i < dirtyText.length(); i++) {
        if (!allowedCharacters.contains(dirtyText.substring(i, i+1))) {
            return false;
        }
    }
    return true;
}