`

@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();
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics