首页 > 解决方案 > Java String.contains() 无法正常工作

问题描述

我正在使用主题标签在我的应用程序中实现搜索。这个想法是程序将循环我的数据库中的所有现有帖子并检查是否是 currentPost 中的所有输入主题标签,然后它将帖子添加到 recyclerView

由于某种原因,string.contains 无法正常工作,例如我搜索了“brasil historia”并且有两个主题标签,但函数返回为 false

这是我正在使用的方法:

private boolean checkTagsSearch(List<String> tags, String searchString, String query) {

        String[] searchHashtagsList = query.split(" ");
        int numberOfSearchedTags = searchHashtagsList.length;
        int counter=0;
        // if there is the search string in the tags
        // se o post tiver a search string
        for(String currentTag : tags){
            Log.i("checkTags", "search: " + searchString + " currentTag: " + currentTag+ " counter: "+counter);
            Log.i("checkTags", "search string contains? " + searchString.contains(currentTag));

            if (searchString.contains(currentTag)) {
                counter++;

                if(counter == numberOfSearchedTags) {
                    return true;
                }
            }
        }

        return false;

    }

这是我为 Log.i 获得的日志:

正如您在这里看到的,搜索字符串是“brasilhistoria”,它搜索了巴西和历史,但包含的是错误的

2021-02-07 08:28:18.115 22455-22455/com.I/checkTags: search: brasilhistoria currentTag: brasil  counter: 0
2021-02-07 08:28:18.115 22455-22455/com.I/checkTags: search string contaiins? false
2021-02-07 08:28:18.115 22455-22455/com.I/checkTags: search: brasilhistoria currentTag: imperio  counter: 0
2021-02-07 08:28:18.115 22455-22455/com.I/checkTags: search string contaiins? false
2021-02-07 08:28:18.116 22455-22455/com.I/checkTags: search: brasilhistoria currentTag: primeiroreinado  counter: 0
2021-02-07 08:28:18.116 22455-22455/com.I/checkTags: search string contaiins? false
2021-02-07 08:28:18.116 22455-22455/com.I/checkTags: search: brasilhistoria currentTag: historia  counter: 0
2021-02-07 08:28:18.116 22455-22455/com.I/checkTags: search string contaiins? false

标签: javastringlistcontains

解决方案


你之后有空间currentTag,然后你调用例如:

"brasilhistoria".contains("brasil ");

答案是假的


推荐阅读