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

    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楼 票数:2 已采纳

已经有 许多 问题,对于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;
}

  ask by Berat Çakır translate from so

未解决问题?本站智能推荐:

3回复

具有记忆意识的字符串过滤

假设我有500个字: 我的以下文本总计约85KB: Marting去了Hopa商店买了他自己的东西,现在他打算和他最好的朋友杜南(Dunam)一起存放它。 他们计划使用在Foo镇Hugnog商店中找到的Golap锁。 >... text continues into s
5回复

过滤坏词| java'替换'

为了过滤坏词,我发现Java中的“替换”功能没有预期的方便。 请在下面的代码中找到:例如:考虑单词“ abcde”,我想将其过滤为“ a *** e”。 输出: a***e 但是,如果String为String test = "bbcde"; ,输出为****e 。 看来,如
1回复

哪个是有效的,更好的方法btw过滤器和for循环

我在NamAryVar中有一个Class Object列表 我需要检查String是否等于列表中任何NamCar的NamVar。 我这样做有两种方式,我得到了理想的结果。 但 我想知道哪种更快,更有效,并且在这两种方法中使用更少的资源。 | * | 使用for循环:
2回复

Notepad ++文件过滤器

我想知道是否可以在Notepad ++的“查找文件”功能中列出文件过滤器中的排除项。 例如,以下内容将在所有文件中替换Dog with Cat。 找到什么:狗 替换为:Cat 过滤器:*。* 我想做的是在所有文件中替换Dog with Cat,除了.sh文件中的那些
1回复

如何通过替换和拆分来缩短过滤器功能?

我将过滤器函数与 replace() 和 split() 结合使用。 它看起来像这样 有没有办法缩短它,这样我就不必两次使用相同的替换和拆分功能? 因为我只需要结合 [0] 和 [1]。
1回复

带有替换和搜索功能的熊猫过滤器

我有这样的数据框 我想过滤行并根据过滤器替换值。 我想根据替换值应用两种不同的操作。 如何做到这一点,因为我目前的方法不起作用。
1回复

字符过滤器模式替换不适用于elasticsearch

数小时以来,我一直在尝试找出为什么这个简单的示例不起作用。 我将正则表达式简化为简单的示例,因为它们根本不起作用。 谢谢您的帮助 我索引了一个词:“挂” 和 我不确定_source是否也要更改,但是索引数据和_source都没有更改。 我希望“挂”是“挂”。
1回复

使用angularJS过滤器在搜索结果中突出显示搜索文本

我有一个输入框,用于在显示的整体结果中过滤出结果。 我有一个过滤器“ startWith”。 现在,我需要突出显示在angularJS中显示的搜索结果中的搜索文本。 例如,当我在搜索框中键入“ o”时,它应突出显示所显示橙色的“ O”。 你能帮我实现这个吗? 这是我的代码: