`

@me 如何处理

 
阅读更多
红薯 分享了这个代码 ,我觉得很好 在这个社区与大家分享 。

 static Pattern referer_pattern = Pattern.compile("@([^@^\\s^:]{1,})([\\s\\:\\,\\;]{0,1})");//@.+?[\\s:]

    /**
     * 处理提到某人 @xxxx
     *
     * @param msg      传入的文本内容
     * @param referers 传出被引用到的会员名单
     * @return 返回带有链接的文本内容
     */
    public static String _GenerateRefererLinks(String msg, List<Long> referers) {
        StringBuilder html = new StringBuilder();
        int lastIdx = 0;
        Matcher matchr = referer_pattern.matcher(msg);
        while (matchr.find()) {
            String origion_str = matchr.group();
            //System.out.println("-->"+origion_str);
            String str = origion_str.substring(1, origion_str.length()).trim();
            //char ch = str.charAt(str.length()-1);
            //if(ch == ':' || ch == ',' || ch == ';')
            //	str = str.substring(0, str.length()-1);
            //System.out.println(str);
            html.append(msg.substring(lastIdx, matchr.start()));

            User u = null;
            @SuppressWarnings("unchecked")
            List<User> users = User.INSTANCE.LoadList(User.CheckUsername(str));
            if (users != null && users.size() > 0) {
                u = users.get(0);
                for (User ref : users) {
                    if (ref.getThis_login_time() != null && u.getThis_login_time() != null &&
                            ref.getThis_login_time().after(u.getThis_login_time())) {
                        u = ref;
                    }
                }
            }
            if (u == null) {
                u = User.GetByIdent(str);
            }

            if (u != null && !u.IsBlocked()) {
                html.append("<a href='" + LinkTool.user(u) + "' class='referer' target='_blank'>@");
                html.append(str.trim());
                html.append("</a> ");
                if (referers != null && !referers.contains(u.getId()))
                    referers.add(u.getId());
            } else {
                html.append(origion_str);
            }
            lastIdx = matchr.end();
            //if(ch == ':' || ch == ',' || ch == ';')
            //	html.append(ch);
        }
        html.append(msg.substring(lastIdx));
        return html.toString();
    }
分享到:
评论

相关推荐

    kissme_feature.zip_KISSME_KISSME算法_kissme feature_kissme 图像处理_si

    《KISSME算法在图像处理中的应用与实现》 KISSME(Keep It Simple, Stupid Metric for Euclidean Spaces)算法是一种简洁而有效的距离度量方法,尤其在图像处理领域中,它被广泛用于特征匹配和图像检索。该算法的...

    Quidway_ME60_多业务控制网关_故障处理_IPoX接入业务故障处理

    Quidway ME60 故障处理-BRAS 业务

    ME60故障处理trace详细解析

    ME60故障处理trace详细解析ME60故障处理trace详细解析

    Click_me.zip_ML2_clickme如何进入_r 18.click me_安卓

    4. **点击事件处理**:“click me”作为触发事件的按钮,展示了Android中事件监听和响应的基本概念。 5. **拨号盘集成**:应用可以集成系统拨号功能,实现从应用内直接拨打电话,这需要权限管理和对Intent的理解。 ...

    Python-meza处理表格tabular数据的Python工具集

    **Python-meza:高效处理表格数据的利器** Python-meza是一个强大的开源库,专为处理表格数据而设计,尤其在面对大规模数据集时表现出色。它提供了丰富的函数接口,使得读取、写入和操作表格数据变得轻而易举。在...

    me350 me330 免芯片

    标题中的“me350 me330 免芯片”暗示了这可能是一个关于电子设备或计算机硬件的技术主题,特别是涉及到ME350和ME330型号的产品,以及它们在不使用特定芯片的情况下如何运行或操作。在IT领域,"免芯片"通常指的是设备...

    硕飞ME830/ME850 单片机开发实验仪最新驱动软件

    开发实验仪通常包含各种输入输出接口、模拟和数字信号处理能力,以及编程和调试工具,使得开发者能够在实际环境中测试和优化代码。 驱动软件是连接硬件设备与操作系统之间的桥梁,对于硕飞ME830/ME850来说,驱动...

    0ME33+ME32 清零软件.

    【标题】"0ME33+ME32 清零软件"所涉及的知识点主要集中在打印机维护和Epson ME33型号的相关技术上。这款软件主要用于解决Epson ME33系列打印机的计数器清零问题,确保打印机能够正常工作。 在打印机行业中,计数器...

    Intel ME System Tools v9.5 r6.rar

    5. **诊断和维护**:定期运行诊断工具,确保ME的健康状态,并处理任何发现的问题。 **5. 注意事项** - 在更新ME固件时,务必遵循指导,以免导致系统不稳定或无法启动。 - 确保在安全的网络环境中进行远程管理操作...

    javaME 开发源码javaME 开发源码

    JavaME,全称为Java Micro Edition,是Java技术在嵌入式设备和移动设备上的应用版本。这个平台主要用于开发和部署在手机、智能家电、车载系统等小型设备上的应用程序。JavaME为开发者提供了一套标准的API,使得软件...

    笔记本主板ME和序列号BIOS提取识别工具

    BIOS序列号是每台电脑主板独一无二的标识,通常用于验证设备合法性,而ME是Intel平台的一个嵌入式控制器,负责处理低级硬件管理和安全性相关的任务。了解这些信息对系统维护和故障排查至关重要,特别是在处理硬件...

    JY-ME01角度传感器

    JY-ME01角度传感器便是这类产品的典型代表,它不仅能够提供原始的角位置数据,还能进行初步的数据处理,降低上层系统的负担。 五、应用领域 1. 工业自动化:在机器人、数控机床等领域,JY-ME01可确保设备的精确...

    ME33清零软件及教程(不要密码)

    通常,一些专业的设备管理软件可能需要特定的授权或密码才能执行关键功能,而ME33清零软件的无密码设计使得非专业人员也能更轻松地处理设备维护工作。 ME33清零的过程可能包括以下几个步骤: 1. **连接设备**:...

    ME350 ME330清零软件

    爱普生ME350和ME330清零软件是一...总之,爱普生ME350和ME330清零软件是这两款打印机用户必备的工具,它能有效地处理计数器问题,让打印机保持最佳工作状态。但同时,合理使用和定期保养也是保持打印机长久工作的关键。

    ME32F030开发资料 例程集合

    ME32F030的例程集合可能包括基本的GPIO控制、定时器配置、串行通信、中断处理、ADC和DAC的使用等,通过这些实例,开发者可以了解如何初始化硬件、编写中断服务程序以及如何与外围设备交互。 5. **库函数**:...

    Windows ME 启动盘

    启动盘在计算机领域扮演着重要的角色,尤其是在处理系统问题或安装操作系统时。Windows ME的启动盘包含了若干关键文件,用于帮助用户在没有操作系统的情况下进行系统修复或者初始化设置。以下是压缩包文件中的主要...

    javaME俄罗斯方块

    9. **错误处理与调试**:JavaME提供了基本的异常处理机制,开发者需要对可能出现的问题进行预见,设置适当的错误处理代码,同时,由于设备限制,远程调试工具如NetBeans或Eclipse的Wireless Toolkit也非常重要。...

    ME909S-821 Linux驱动及说明

    资料通常会包含API参考,帮助开发者理解如何调用驱动提供的功能,以及如何处理错误和异常情况。 总的来说,"ME909S-821 Linux驱动及说明"是一套完整的解决方案,旨在帮助开发人员和系统集成商在Linux环境中无缝地...

    Windows Me DDK Installing Windows Me Drivers And USB

    安装过程中,可能会遇到依赖项检查、路径配置等问题,需要仔细处理,以避免后续开发过程中的困扰。 驱动程序的开发主要包括以下步骤: 1. 设备识别:驱动程序首先要能识别所支持的硬件设备,这通常通过设备ID或者...

    ME3616建议串口软件(含指令)_me3616_AT指令_clockxs1_me3616串口软件_

    这样的软件可以帮助用户方便地发送AT指令,查看响应,并可能包含调试功能,如日志记录和错误处理。 在压缩包内的文件中,我们可能会找到以下内容: 1. 串口通信软件:可能是.exe或.jar文件,用于在计算机上打开...

Global site tag (gtag.js) - Google Analytics