【问题标题】:Is there anyway to convert emoji to text in Java?无论如何在Java中将表情符号转换为文本?
【发布时间】:2016-01-15 01:06:14
【问题描述】:

????如何将这样的表情符号转换为文本?我的意思是将一张快乐的脸转换成“快乐”等词。使用Java,我怎样才能做到这一点?

【问题讨论】:

  • 你需要在unicode字符和你的word之间建立一个映射
  • 请包含一些代码以显示您尝试过的内容。
  • 我没有尝试任何代码,因为我不知道该怎么做。谢天谢地,现在我知道了。

标签: java emoji


【解决方案1】:

您可以使用emoji4j 库。

String text = "A ?, ? and a ? became friends❤️. For ?'s birthday party, they all had ?s, ?s, ?s and ?.";

EmojiUtils.shortCodify(text); //returns A :cat:, :dog: and a :mouse: became friends:heart:. For :dog:'s birthday party, they all had :hamburger:s, :fries:s, :cookie:s and :cake:.

【讨论】:

  • 你的库非常好+1,但我只想要像 "\uD83D\uDC4D" 这样的 unicode 是 java unicode for ?。你的图书馆里有它的功能吗?
  • :slightly_smiling_face: - 失败
【解决方案2】:

由于表情符号只是一个标准的 Unicode 代码点(U+1F601,请参阅here),可能最好的方法是设置一个将它们转换为字符串的映射。

例如,下面是一段代码,它创建了一个字符串到字符串的映射,让您可以查找和翻译那个确切的代码点:

import java.util.HashMap;
import java.util.Map;
class Xyzzy {
    public static Map<String,String> xlat = new HashMap<String, String>();
    public static void main (String[] args) {
        xlat.put("\uD83D\uDE01", "happy");
        System.out.println(xlat.get("\uD83D\uDE01"));
    }
}

您可以根据需要向地图中添加任意数量的代码点,并使用Map.get() 提取其中任何一个的等效文本。

【讨论】:

  • 一个简单的菜鸟问题:你能给我举个例子吗?谢谢。
  • @Rahul,没问题。有关使用地图的示例,请参阅更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
相关资源
最近更新 更多