【问题标题】:Java replace text with emojiJava用表情符号替换文本
【发布时间】:2021-01-13 11:01:44
【问题描述】:

我创建了一个将文本替换为表情符号的类。该代码目前运行良好,但表情符号的外观不太正确。

他们是这样的:

但我更喜欢这样:

我尝试了多种不同的代码格式,但似乎没有任何效果。也许我在寻找错误的东西?

我的班级:

package user;

import java.util.HashMap;
import java.util.Map;

public class EmojiReplacer {

    private final Map<String, Integer> emojis = new HashMap<String, Integer>() {{
        put(":)", 0x1F60A);
        put(":d", 0x1F604);
        put(";)", 0x1F609);
        put(":o", 0x1F62E);
        put(":p", 0x1F60B);
        put(":$", 0x1F633);
        put(":(", 0x1F615);
        put(":'(", 0x1F625);
        put(":|", 0x1F610);
        put(">:)", 0x1F608);
        put(">:(", 0x1F621);
        put(":]", 0x1F60F);
        put("<3", 0x2764);
    }};

    public String replaceString(String message) {
        String[] messagePieces = message.split("\\s+");
        for (int i = 0; i < messagePieces.length; i++) {
            if (emojis.containsKey(messagePieces[i])) {
                messagePieces[i] = new String(Character.toChars(emojis.get(messagePieces[i])));
            }
        }
        return String.join(" ", messagePieces);
    }
}

【问题讨论】:

  • 表情符号的外观因平台或操作系统而异。 Emojipedia 部分显示了这一点,例如 grinning face

标签: java emoji


【解决方案1】:

我的猜测是问题在于为您呈现表情符号的任何内容,而不是您正在呈现的文本字符串。换句话说,您的代码运行良好。

我只是这样运行你的代码:

public static void main(String[] args) {
    EmojiReplacer test = new EmojiReplacer();
    System.out.println(test.replaceString(":) :d >:) :$"));
}

我明白了:

? ? ? ?

在我的 IntelliJ 输出窗口和这里看起来都不错。我在 Mac 上。

什么是获取您的代码生成的字符串,并为您生成实际的视觉表情符号?由于浏览器显然可以呈现它们,您是否尝试过复制您认为看起来不对的表情符号,并将它们粘贴到浏览器中,就像粘贴到您的消息中一样。您显示的不良表情符号示例似乎是屏幕截图,而不是浏览器呈现的实际表情符号。

【讨论】:

  • 复制粘贴后我的结果:???? 将它们打印到我的输出窗口和 JavaFX 都会给我带行的结果,而不是颜色
  • 我该如何改变这个?
  • @Tygo,这将是显示字符的问题。正是该程序选择将这些特殊字符解释为某些符号,并决定映射和特定符号。我在 Mac 上尝试过的所有东西都做同样的事情,所以在 Mac 上可能有一组共享的符号。也许在 Windows 和/或 Linux 上,情况有所不同。您可以从问题中的黑白示例中看到,无论渲染该表情符号的内容确实知道它在做什么……它是一个笑脸,所以它确实是正确的。猜猜它想远离颜色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-23
  • 1970-01-01
  • 2013-05-22
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多