【问题标题】:how can i search within names starting from words in android?我如何在从 android 中的单词开始的名称中搜索?
【发布时间】:2013-11-23 16:36:22
【问题描述】:

现在我在列表中搜索名称,但我希望当我在编辑文本中输入字符时,它返回的名称包含以这些字符开头的单词而不包含在任何位置

例如: 我正在搜索这些字符 (ste),然后它返回该结果:

1 - Al Bernstein
2 - Ben Stein
3 - Steve Jobs
4 - John Stewart

我不想要名字,因为它没有以这些字符开头的单词,但其他三个是正确的

这是我的代码:

auName.toLowerCase().contains(s.toString().toLowerCase()

【问题讨论】:

  • String name = "Ben Stein"; String name1 = "Ste"; System.out.println(name.toLowerCase().contains(name1.toString().toLowerCase())); 这为我打印true?如果我错了,请纠正我。
  • 我不想要名字 1 - Al Bernstein

标签: android search word


【解决方案1】:

1 - 阿尔伯恩斯坦 2 - 本斯坦 3 - 史蒂夫乔布斯 4 - 约翰斯图尔特

我不想要名字,因为它没有以这些开头的单词 字符,但其他三个是对的

从上面的示例中,您正在搜索的单词似乎也有一件重要的事情。它的“Ste”,即“S”是大写的。..

你可以简单地搜索一下..

auName.contains(s.toString())

在哪里s = "Ste";

或者如果你还想用“ste”去搜索,那么

//check presence of word at start and after apace
    if(auName.toLowerCase().startswith(s.toString().toLowerCase()) || auName.toLowerCase().contains(" " + s.toString().toLowerCase())){
    //your code
    }

【讨论】:

【解决方案2】:

使用String.startsWith(String prefix) 查找一个字符串是否以另一个字符串开头

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith(java.lang.String)

由于您需要名字或姓氏,您需要先拆分字符串并检查是否以您的搜索词开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多