【发布时间】:2018-02-08 13:00:37
【问题描述】:
public void searchSong(String songToSearch){
Toast.makeText(getApplicationContext(), songToSearch, Toast.LENGTH_SHORT).show();
boolean found = false;
for(int i = 0; i < fileArray.length; i++ ){
String value = fileArray[i].toLowerCase().replace(".mp3","");
if (songToSearch.toLowerCase().matches(value) && !found) {
Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
found = true;
} else {
found = false;
}
if(found){
Toast.makeText(getApplicationContext(), "Found", Toast.LENGTH_SHORT).show();
}
}
}
我想使用代码来检查 songToSearch 是否是 fileArray 中任何字符串的一部分 示例让我们说 fileArray[2] 等于“Hello world”,而 songToSearch 等于“world” 我想让布尔值发现为真......但是这没有发生......布尔值永远不会改变
【问题讨论】:
-
您基本上想要歌曲列表的搜索功能?如果是,您应该尝试实现搜索视图。
-
使用
value.toLowerCase().contains(songToSearch.toLowerCase())而不是matches -
@XtremeBaumer Nah... 它没有改变结果
-
布尔值发生了变化,但它也会在下一个不包含该单词的值上变回。你想显示多个结果还是只显示第一个?
-
@XtremeBaumer 等等... if 中的 && 不是停止循环吗?
标签: java android string indexof