替换字符串中的笑脸代码

时间:2012-03-24 14:04:38

标签: java regex

我将表情符号插入字符串中。我已经以某种格式编写了表情符号,当我在组件中显示字符串之前,我需要用HTML img标签替换所有出现的笑脸代码,这样它们就会显示为图像。所以这是我的表情符号的格式 -

&:) ==> smile

&:O ==> shocked

&:( ==> sad

etc...

所以说我有以下字符串 -

Did you hear the news &:O. I won a million dollars!! &:)

我需要找到,然后用HTML替换所有的笑脸代码,如

<img src='file:C:/images/sad.png'/>

3 个答案:

答案 0 :(得分:4)

对于您要替换的每种笑脸,最好使用String.replaceAll(String what, String withWhat)

答案 1 :(得分:4)

我认为你最好使用String.replace而不是String.replaceAll,这样你就不必处理逃避的正则表达式模式......它只是替换文字。

答案 2 :(得分:2)

在某处定义:

static HashMap<String, String> smileys = new HashMap<String, String>();

然后用smileys(String)和它们的html表示填充它:

smileys.put("&:)", "<img src='file:C:/images/sad.png'/>");
smileys.put("&:O", "<img src='file:C:/images/sad.png'/>");
smileys.put("&:(", "<img src='file:C:/images/sad.png'/>");

替换表情符号是通过用html表示替换每个出现的笑脸代码来完成的,只需像这样循环哈希映射:

public String replaceSmileys(String text){
    for(Entry<String, String> smiley : smileys.entrySet())
        text = text.replaceAll(smiley.getKey(), smiley.getValue());
    return text;
}