Java 用表情符号替换文字
Java replace text with emoji
我制作了这个 class 可以将文本替换为表情符号。目前代码运行良好,但表情符号的外观不太正确。
他们是这样的:
但我更喜欢这样:
我尝试了多种不同的代码格式,但似乎没有任何效果。也许我搜索的东西不对?
我的class:
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);
}
}
我的猜测是问题出在为您呈现表情符号,而不是您正在呈现的文本字符串。换句话说,您的代码运行良好。
我只是 运行 你的代码是这样的:
public static void main(String[] args) {
EmojiReplacer test = new EmojiReplacer();
System.out.println(test.replaceString(":) :d >:) :$"));
}
我明白了:
在我的 IntelliJ 输出 window 和此处看起来都不错。我在 Mac.
什么是使用您的代码生成的字符串,并为您生成实际的视觉表情符号?由于浏览器显然可以呈现它们,您是否尝试过复制您认为看起来不对的表情符号,并将它们粘贴到您的浏览器中,比如粘贴到您的消息中。您显示的不良表情符号示例似乎是屏幕截图,而不是浏览器呈现的实际表情符号。
我制作了这个 class 可以将文本替换为表情符号。目前代码运行良好,但表情符号的外观不太正确。
他们是这样的:
但我更喜欢这样:
我尝试了多种不同的代码格式,但似乎没有任何效果。也许我搜索的东西不对?
我的class:
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);
}
}
我的猜测是问题出在为您呈现表情符号,而不是您正在呈现的文本字符串。换句话说,您的代码运行良好。
我只是 运行 你的代码是这样的:
public static void main(String[] args) {
EmojiReplacer test = new EmojiReplacer();
System.out.println(test.replaceString(":) :d >:) :$"));
}
我明白了:
在我的 IntelliJ 输出 window 和此处看起来都不错。我在 Mac.
什么是使用您的代码生成的字符串,并为您生成实际的视觉表情符号?由于浏览器显然可以呈现它们,您是否尝试过复制您认为看起来不对的表情符号,并将它们粘贴到您的浏览器中,比如粘贴到您的消息中。您显示的不良表情符号示例似乎是屏幕截图,而不是浏览器呈现的实际表情符号。