检查数组是否包含字符串

时间:2015-09-23 17:32:57

标签: java arrays file search

好的,我有这个程序应该存储有关txt文件中可用的CD的信息。该文件以“artist [tab] album”格式存储数据在同一行。我想要做的是拥有用户输入搜索查询,如果CD在数据库中则返回程序。因此,假设我们在某行上有.txt文件中的Green Day [tab] American Idiot,当用户输入Green时,程序会检查该文件并返回true。但我的问题是,我当前的算法要求字符串完全匹配,而不是部分匹配。因此,用户需要输入Green Day [tab] American Idiot才能获得查询。怎么解决?谢谢。我确信这是我不认为是初学者的事。

这是管理阵列艺术家中搜索的程序的一部分,其中包含当前存储在.txt文件中的所有数据

 for (String e : artists){
        if(Arrays.asList(e).contains(search)){
         contains=true;   
        }

1 个答案:

答案 0 :(得分:2)

为什么要创建列表?您应该使用artist.contains(search)(是的,尝试选择更相关的变量名称)。另外,请确保数组中没有null元素或search不是null等,但您可以执行以下操作:

for(String artist : artists) {
    if(artist.toLowerCase().contains(search.toLowerCase()) {
        contains = true;
        // break; <- you may want to break here
    }
}

您可能希望toLowerCase()两者都进行不区分大小写的搜索。