⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enableemotionfilter.java

📁 java servlet著名论坛源代码
💻 JAVA
字号:
/*
 * $Header: /cvsroot/mvnforum/myvietnam/src/net/myvietnam/mvncore/filter/EnableEmotionFilter.java,v 1.14 2004/03/07 14:32:30 minhnn Exp $
 * $Author: minhnn $
 * $Revision: 1.14 $
 * $Date: 2004/03/07 14:32:30 $
 *
 * ====================================================================
 *
 * Copyright (C) 2002-2004 by MyVietnam.net
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * All copyright notices regarding MyVietnam and MyVietnam CoreLib
 * MUST remain intact in the scripts and source code.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * Correspondence and Marketing Questions can be sent to:
 * info@MyVietnam.net
 *
 * @author: Minh Nguyen  minhnn@MyVietnam.net
 * @author: Mai  Nguyen  mai.nh@MyVietnam.net
 */
package net.myvietnam.mvncore.filter;

public final class EnableEmotionFilter {

    private EnableEmotionFilter() { //prevent instantiation
    }

    static String[][] emotion = {
    // standard emotion
        { "[:))]",      "laughing.gif",         "laughing"},
        { "[:)]",       "smile.gif",            "smile"},
        { "[:-)]",      "smile.gif",            "smile"},
        { "[:((]",      "crying.gif",           "crying"},
        { "[:(]",       "sad.gif",              "sad"},
        { "[:-(]",      "sad.gif",              "sad"},
        { "[;)]",       "wink.gif",             "wink"},
        { "[:D]",       "biggrin.gif",          "biggrin"},
        { "[;;)]",      "batting_eyelashes.gif","batting eyelashes"},
        { "[:-/]",      "confused.gif",         "confused"},
        { "[:x]",       "love.gif",             "love struck"},

        { "[:\">]",     "blushing.gif",         "blushing"},
        { "[:">]", "blushing.gif",      "blushing"},

        { "[:p]",       "tongue.gif",           "tongue"},
        { "[:*]",       "kiss.gif",             "kiss"},
        { "[:O]",       "shock.gif",            "shock"},
        { "[X-(]",      "angry.gif",            "angry"},

        { "[:>]",       "smug.gif",             "smug"},
        { "[:>]",    "smug.gif",             "smug"},

        { "[B-)]",      "cool.gif",             "cool"},
        { "[:-s]",      "worried.gif",          "worried"},

        { "[>:)]",      "devilish.gif",         "devilish"},
        { "[>:)]",   "devilish.gif",         "devilish"},

        { "[:|]",       "straight_face.gif",    "straight face"},
        { "[/:)]",      "raised_eyebrow.gif",   "raised eyebrow"},
        { "[O:)]",      "angel.gif",            "angel"},
        { "[:-B]",      "nerd.gif",             "nerd"},
        { "[=;]",       "talk_to_the_hand.gif", "talk to the hand"},
        { "[I-)]",      "sleep.gif",            "sleep"},
        { "[8-|]",      "rolling_eyes.gif",     "rolling eyes"},

        { "[:-&]",      "sick.gif",             "sick"},
        { "[:-&]",  "sick.gif",             "sick"},

        { "[:-$]",      "shhh.gif",             "shhh"},
        { "[[-(]",      "not_talking.gif",      "not talking"},
        { "[:o)]",      "clown.gif",            "clown"},
        { "[8-}]",      "silly.gif",            "silly"},
        { "[(:|]",      "tired.gif",            "tired"},
        { "[=P~]",      "drooling.gif",         "drooling"},
        { "[:-?]",      "thinking.gif",         "thinking"},
        { "[#-o]",      "d_oh.gif",             "d oh"},

        { "[=D>]",      "applause.gif",         "applause"},
        { "[=D>]",   "applause.gif",         "applause"},
    // hidden emotion
        { "[:@)]",      "pig.gif",              "pig"},
        { "[3:-O]",     "cow.gif",              "cow"},
        { "[:(|)]",     "monkey.gif",           "monkey"},

        { "[~:>]",      "chicken.gif",          "chicken"},
        { "[~:>]",   "chicken.gif",          "chicken"},

        { "[@};-]",     "rose.gif",             "rose"},
        { "[%%-]",      "good_luck.gif",        "good luck"},
        { "[**==]",     "flag.gif",             "flag"},
        { "[(~~)]",     "pumpkin.gif",          "pumpkin"},
        { "[~o)]",      "coffee.gif",           "coffee"},
        { "[*-:)]",     "idea.gif",             "idea"},
        { "[8-X]",      "skull.gif",            "skull"},
        { "[=:)]",      "alien_1.gif",          "alien 1"},

        { "[>-)]",      "alien_2.gif",          "alien 2"},
        { "[>-)]",   "alien_2.gif",          "alien 2"},

        { "[:-L]",      "frustrated.gif",       "frustrated"},

        { "[<):)]",     "cowboy.gif",           "cowboy"},
        { "[&lt;):)]",  "cowboy.gif",           "cowboy"},

        { "[[-o<]",     "praying.gif",          "praying"},
        { "[[-o&lt;]",  "praying.gif",          "praying"},

        { "[@-)]",      "hypnotized.gif",       "hypnotized"},
        { "[$-)]",      "money_eyes.gif",       "money eyes"},

        { "[:-\"]",     "whistling.gif",        "whistling"},
        { "[:-&quot;]", "whistling.gif",        "whistling"},

        { "[:^o]",      "liar.gif",             "liar"},
        { "[b-(]",      "beat_up.gif",          "beat up"},

        { "[:)>-]",     "peace.gif",            "peace"},
        { "[:)&gt;-]",  "peace.gif",            "peace"},

        { "[[-X]",      "shame_on_you.gif",     "shame on you"},
        { "[\\:D/]",    "dancing.gif",          "dancing"},

        { "[>:D<]",     "hugs.gif",             "hugs"},
        { "[&gt;:D&lt;]", "hugs.gif",           "hugs"},
    };

    public static String filter(String input, String emotionFolder) {
        int beginIndex = 0;
        int currentBracketIndex = 0;
        int inputLength = input.length();
        int emotionLength = emotion.length;
        StringBuffer output = new StringBuffer(inputLength * 2);

        if (emotionFolder.endsWith("/") == false) {
            emotionFolder = emotionFolder + "/";
        }

        while(beginIndex < inputLength) {
            currentBracketIndex = input.indexOf('[', beginIndex);
            if (currentBracketIndex == -1) { // cannot find bracket
                String remain = input.substring(beginIndex, inputLength);
                output.append(remain);
                break;
            } else {// found the bracket
                String remain = input.substring(beginIndex, currentBracketIndex);// too slow here !!!
                output.append(remain);
                boolean matchFound = false;

                // try to find if it matchs any emotion
                for (int i = 0; i < emotionLength; i++) {
                    String currentEmotion = emotion[i][0];
                    int endIndex = currentBracketIndex + currentEmotion.length();
                    if (endIndex > inputLength) continue;
                    String match = input.substring(currentBracketIndex, endIndex);
                    if (currentEmotion.equals(match)) {
                        String imgTag = "<img src='" + emotionFolder + emotion[i][1] + "' border='0' alt='" + emotion[i][2] + "' title='" + emotion[i][2] + "'>";
                        output.append(imgTag);
                        beginIndex = currentBracketIndex + currentEmotion.length();
                        matchFound = true;
                        break;
                    }
                }// for

                if (matchFound == false) {
                    beginIndex = currentBracketIndex + 1;
                    output.append('[');
                }
            }//else
        }// while

        return output.toString();
    }
/*
    public static void main(String[] args) {
        String input = " :smile :) grin:)) sad = -:(cry:((minh::>:)bdfdfc:";
        System.out.println("input = '" + input + "' length = " + input.length());
        EnableEmotionFilter enableEmotionFilter = new EnableEmotionFilter();

        long start = System.currentTimeMillis();
        String output = null;
        for (int i = 0; i <10000; i++) {
            output = enableEmotionFilter.filter(input, null);
        }
        long time = System.currentTimeMillis() - start;
        System.out.println("total time = " + time);

        System.out.println(output);
    }
    */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -