【发布时间】:2016-01-15 01:06:14
【问题描述】:
????如何将这样的表情符号转换为文本?我的意思是将一张快乐的脸转换成“快乐”等词。使用Java,我怎样才能做到这一点?
【问题讨论】:
-
你需要在unicode字符和你的word之间建立一个映射
-
请包含一些代码以显示您尝试过的内容。
-
我没有尝试任何代码,因为我不知道该怎么做。谢天谢地,现在我知道了。
????如何将这样的表情符号转换为文本?我的意思是将一张快乐的脸转换成“快乐”等词。使用Java,我怎样才能做到这一点?
【问题讨论】:
您可以使用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:.
【讨论】:
由于表情符号只是一个标准的 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() 提取其中任何一个的等效文本。
【讨论】: