`
zhuqiang5138
  • 浏览: 31798 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

过滤搜索条件

阅读更多
http://download.csdn.net/tag/android%E5%BF%AB%E9%80%9F%E6%BB%91%E5%8A%A8%E5%88%97%E8%A1%A8%E3%80%81%E9%80%9A%E8%AE%AF%E5%BD%95
http://download.csdn.net/detail/jiong056/3903023
http://gundumw100.iteye.com/blog/1331258
http://www.iteye.com/topic/135806
http://blog.csdn.net/ilysony/article/details/6292771
http://www.cnblogs.com/cnsanshao/archive/2011/08/19/2145210.html
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=81435&extra=page%3D3%26filter%3Dtypeid%26typeid%3D5%26typeid%3D5
android 联系人表中有一个字段sort_key 大概是朱强 : ZHU 朱 QIANG 强

搜索策略 一般就是支持简拼、全拼、中文、号码和拨号盘

提供一种方法可以把简拼、全拼、中文可以放在一起处理,先把 “ZHU 朱 QIANG 强”

变成“ZHU 朱 QIANG 强 ZQ” 用下面的方法就可以一起处理了。

public class LongMain
{
    private static String sourceStr = "朱 ZHU 强 QIANG ZQ";
    
    private static String key = "朱强";
    
    private static String reg = "(.*\\b)?$z";
    
    // 优化:charAt()效率,StringBuffer
    public static void main(String[] args)
    {
        String regex = "";
        key = key.toUpperCase();
        for (int i = 0; i < key.length(); i++)
        {
            regex += reg.replace("$z", String.valueOf(key.charAt(i)));
        }
        regex = "^" + regex + ".*$";
        System.out.println(Pattern.compile(regex).matcher(sourceStr).matches());
    }
}


结果应该是 true

key换成是 ZQ、ZHUQIANG、Z、Q、朱、强 应该都是true 大概是满足搜索的过滤策略了

过滤完 以后可能还会涉及到关键字高亮的问题

下面提供3中方式:

1、第一种
Spanned style = Html.fromHtml(phone.replaceAll(input, "<font color='red'>" + input + "</font>"));
number_tv.setText(style);   


2、第二种
int index = phone.indexOf(input);
int len = input.length();
Spanned temp = Html.fromHtml(phone.substring(0, index)
          + "<font color=red>" + phone.substring(index, index + len)
          + "</font>" + phone.substring(index + len, phone.length()));
number_tv.setText(temp); 


3、第三种
int start = phone.indexOf(input);     
SpannableStringBuilder style=new SpannableStringBuilder(phone);     
style.setSpan(new ForegroundColorSpan(Color.RED), start, start + input.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
number_tv.setText(style);


分享到:
评论

相关推荐

    java-根据过滤条件显示树形结构

    在Java编程中,根据过滤条件显示树形结构是一项常见的任务,尤其在数据管理、文件系统或者GUI应用中。树形结构是一种数据结构,它通过节点的层级关系来组织数据,通常用于表示具有层次性的信息。在这个场景下,我们...

    仿淘宝条件过滤js

    在IT行业中,"仿淘宝条件过滤js"是一个常见的前端开发任务,主要目的是实现类似淘宝商品搜索功能,允许用户根据多种条件筛选出满足需求的商品。这个功能对于提高用户体验和提升网站的交互性至关重要。下面我们将详细...

    JavaScript写的京东商城产品搜索条件过滤效果源码

    在本资源中,我们关注的是一个使用JavaScript编写的京东商城产品搜索条件过滤效果的源码。这个源码实现了一个功能完善的前端搜索系统,允许用户根据不同的条件筛选商城中的产品,提高用户查找商品的效率和体验。...

    实用的jQuery列表和表格过滤搜索插件

    在JavaScript开发领域,jQuery-easySearch是一款非常实用的插件,专为实现列表和表格的高效过滤搜索而设计。这款插件以其易用性、灵活性和高性能而在开发者中受到广泛欢迎。下面我们将深入探讨jQuery-easySearch的...

    Android 仿联系人列表 实现ListView的A-Z字母排序和过滤搜索功能

    这个应用通常需要具备A-Z字母排序和过滤搜索功能,以提供用户友好的界面和交互。本文将深入讲解如何在Android中实现这一功能。 首先,我们需要理解ListView的基础。ListView是Android中的一个视图组件,用于展示...

    Elasticsearch(ES)多条件(日期,时段,时分,mac。。)过滤实现案例(6.3版本)

    Elasticsearch(ES)多条件过滤实现案例(6.3版本), 搜索过滤,对日期进行时分秒区间判断,多条件整合优化

    DIV弹出层+JS条件过滤

    在网页开发中,"DIV弹出层+JS条件过滤"是一种常见的交互设计技术,用于提升用户体验和增强数据筛选效率。这种技术结合了HTML的层(Layer)概念、CSS的样式控制以及JavaScript的动态功能,实现了在用户输入时即时对...

    用Vue3写的目录组件,支持搜索过滤,展开收起

    搜索过滤功能: 用户可以输入关键字对目录进行过滤,只显示符合条件的条目。 组件属性与默认值设置 在实现目录组件时,我们需要考虑到以下几个属性: cmdList: 用于传入目录数据,包含了目录的结构信息。 custom...

    winform treeview过滤

    在Windows Forms(WinForm)应用程序开发中,...根据实际需求,还可以进一步定制,比如增加多条件过滤、实时搜索提示等功能,提升应用的交互性和实用性。在开发过程中,记得始终关注性能优化,以提供流畅的用户体验。

    wireshark过滤器

    在实际操作中,Wireshark还提供了动态过滤功能,可以在实时捕获数据包的同时,根据需要即时修改过滤条件。此外,通过查看过滤器表达式的帮助(`Help` &gt; `Filter Expressions`),用户可以查找可用的协议字段和构建...

    EasyUI DataGrid过滤用法实例

    在 DataGrid 中,启用过滤后,每列标题上会出现一个过滤图标,用户点击该图标可以打开过滤菜单,选择过滤条件。 `datagrid-filter.html` 文件则包含了 HTML 结构,通常会包含一个 `div` 元素,其 `id` 对应于 ...

    VC.NET根据条件过滤指定目录下的子目录.rar

    在本文中,我们将深入探讨如何使用VC.NET(Visual C#.NET)来实现一个功能,即根据特定条件过滤指定目录下的子目录。这个功能对于管理和组织大量文件和子目录的项目非常有用,它允许用户定制筛选规则,从而快速定位...

    下拉(条件)搜索实例extjs4.2(亲测可用).zip

    在这里,它可能设置了下拉搜索组件,与"membersearch.php"进行交互,传递用户输入的搜索条件,并展示返回的结果。 "data.json"文件可能包含了一些预定义的数据,用于在没有后端支持或者调试时模拟数据加载。这种...

    angularJS表格内容搜索过滤代码

    此外,还可以通过`$scope`方法动态改变过滤条件,比如添加筛选选项、多条件搜索等。通过监听`$scope`上的事件或模型变化,可以实现更复杂的过滤逻辑。 总的来说,AngularJS提供了丰富的API和指令来支持表格内容的...

    jQuery 分类搜索框带过滤器的搜索框-20130723

    4. **动态内容更新**:使用jQuery的`html()`、`append()`或`prepend()`方法,我们可以根据搜索条件动态地添加或删除搜索结果列表中的项。 5. **数据结构**:为了实现分类筛选,数据通常以JSON或其他格式存储,每个...

    树过滤

    【标题】:“树过滤” 【描述】:在IT领域,"树过滤"通常是指在数据结构或编程中处理树形结构时,对树的节点进行筛选的过程。这可能涉及到遍历树的所有节点,根据特定条件选择保留哪些节点,或者删除不符合条件的...

    delphi资源-Filter中的模糊过滤

    - 可以直接通过`Filter`属性设置过滤条件,例如`Filter := 'Country = China'`,此时`Filtered`属性为`True`,只显示Country为China的记录。 - 支持使用`=`、`==`、`AND`、`OR`、`NOT`等操作符。 2. **动态设置...

    jquery和CSS3图片排序过滤搜索插件

    **jQuery和CSS3图片排序过滤搜索插件——Filterizr详解** 在现代网页设计中,动态交互元素已经成为提升用户体验的关键因素之一。Filterizr是一款强大的jQuery插件,它利用CSS3的特性,为网页中的图片集合提供了灵活...

    JS过滤树数据

    3. **条件过滤**:可以设置复杂的过滤条件,如多个属性同时满足要求。 以下是一个简单的树数据过滤函数,用于按名称过滤: ```javascript function filterTree(treeData, keyword) { return treeData.filter(node...

Global site tag (gtag.js) - Google Analytics