如何 read/get Java 中表情符号的 unicode 值
How to read/get unicode value for an emoji in Java
我们正在尝试让我们的应用程序接受表情符号。我们正在尝试将表情符号限制为来自 this list.
的表情符号
所以,我正在尝试读取表情符号的 unicode 值(例如,U+1F600)——这样我就可以验证用户输入的表情符号来自上面的列表。
有人可以帮助我如何读取表情符号的 unicode 值吗?或任何其他方式我可以实现此验证?使用编码值等?
}
String actualEmojiString = "";
for(int i=0; i< actualEmojiString.codePointCount(0, actualEmojiString.length()); i++) {
int codePoint = actualEmojiString.charAt(i);
if(Character.isSurrogate(actualEmojiString.charAt(i))) {
codePoint = Character.toCodePoint(actualEmojiString.charAt(i), actualEmojiString.charAt(i));
}
System.out.println( "HexCode value for emoji: [" + actualEmojiString.charAt(i) + "] is [" +"U+" + Integer.toHexString(codePoint | 0x10000).substring(0) +"]"
+ "["+"\u" + Integer.toHexString(codePoint | 0x10000).substring(1) + "]");
输出:
HexCode value for emoji: [?] is [U+1f03d][\uf03d]
HexCode value for emoji: [?] is [U+190200][\u90200]
您通过混合代码点和字符使代码过于复杂。而是使用 String.codePoints()
方法:
"".codePoints().mapToObj(Integer::toHexString).forEach(System.out::println);
将 unicode 值打印为十六进制:
1f600
1f602
然而,这可能根本不需要,因为 Java 支持 unicode String
文字。要检查文本是否包含表情符号,您只需执行以下操作:
"".contains("");
我们正在尝试让我们的应用程序接受表情符号。我们正在尝试将表情符号限制为来自 this list.
的表情符号所以,我正在尝试读取表情符号的 unicode 值(例如,U+1F600)——这样我就可以验证用户输入的表情符号来自上面的列表。
有人可以帮助我如何读取表情符号的 unicode 值吗?或任何其他方式我可以实现此验证?使用编码值等?
}
String actualEmojiString = "";
for(int i=0; i< actualEmojiString.codePointCount(0, actualEmojiString.length()); i++) {
int codePoint = actualEmojiString.charAt(i);
if(Character.isSurrogate(actualEmojiString.charAt(i))) {
codePoint = Character.toCodePoint(actualEmojiString.charAt(i), actualEmojiString.charAt(i));
}
System.out.println( "HexCode value for emoji: [" + actualEmojiString.charAt(i) + "] is [" +"U+" + Integer.toHexString(codePoint | 0x10000).substring(0) +"]"
+ "["+"\u" + Integer.toHexString(codePoint | 0x10000).substring(1) + "]");
输出:
HexCode value for emoji: [?] is [U+1f03d][\uf03d]
HexCode value for emoji: [?] is [U+190200][\u90200]
您通过混合代码点和字符使代码过于复杂。而是使用 String.codePoints()
方法:
"".codePoints().mapToObj(Integer::toHexString).forEach(System.out::println);
将 unicode 值打印为十六进制:
1f600
1f602
然而,这可能根本不需要,因为 Java 支持 unicode String
文字。要检查文本是否包含表情符号,您只需执行以下操作:
"".contains("");