【问题标题】:JAVA: ANDROID: Word index of string [duplicate]JAVA:ANDROID:字符串的单词索引[重复]
【发布时间】: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


【解决方案1】:

参见文档:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

public boolean  matches(String regex)

判断这个字符串是否匹配给定的正则表达式。

你需要:

public boolean contains(CharSequence s)

【讨论】:

    【解决方案2】:
                if (Pattern.compile(Pattern.quote(songToSearch), Pattern.CASE_INSENSITIVE).matcher(value).find()) {
                playMusic(songToSearch);
            }
    

    会解决问题...我的帖子实际上是重复的

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 1970-01-01
      • 2015-05-15
      • 2016-02-21
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多