我建立一个应用程序,应更换默认的电话本,我想添加一个搜索栏,搜索联系人的姓名。
现在我在我自己的数据库中的所有联系人和持续追踪的EDITTEXT任何变化TextWatcher - 然后建立与用户输入的字符序列的查询。 这是工作得很好,我越来越喜欢所有联系人的用户搜索与“A”开头的所有联系人。 现在,我想添加一个新功能,忽略特殊字母,如:A,E,I,O,U。
我想的是,用户可以键入一个,仍然可以得到以A为电子同和所有其他字母开头的所有联系人。
有没有办法在查询本身或存在是Java / Android的给我们说做到的东西做到这一点。
谢谢。
您可以使用java.text.Normalizer
剥离口音。
String strippedAccent = Normalizer.normalize(someText, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
F你想在一个查询中使用它,你应该添加一个字段到包含搜索文本的简装版本的数据库。
这种变化的工作是相当不错的nubdial。 这是相当快的,太。
文章来源: How to avoid different letters cases (á, é, í, ó, ú) in search mode - Android