簡體   English   中英

如何在Java中讀取/獲取表情符號的unicode值

[英]How to read/get unicode value for an emoji in Java

我們正在嘗試讓我們的應用程序接受表情符號。 我們正在嘗試將表情符號限制為該列表中的表情符號。

因此,我正在嘗試讀取表情符號的unicode值(例如,U的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("😂");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM