java - 将两个代码点表情符号放入字符串中?

标签 java scala char emoji

鉴于以下表情符号来自 http://unicodey.com/emoji-data/table.htm :

名称:区域指示符号字母ma

unicode 值:U+1F1F2 U+1F1E6

它的代码点值应该是多少?

示例:

感叹号的代码点值为 33,即 0x21 到基数 10 = 33

scala> "\u0021"
res11: String = !

scala> "\u0021".codePoints.toArray
res12: Array[Int] = Array(33)

因此,在这种情况下,我可以简单地将 \u0021 放入字符串中。但是,如何创建一个String来包含区域指示符号字母ma

最佳答案

以下是构造字符串的方法:

scala> val points = Array(0x1F1F2, 0x1F1E6)
points: Array[Int] = Array(127474, 127462)

scala> val string = new String(points, 0, points.length)
string: String = 🇲🇦
<小时/>

编辑:以下部分是我的原始答案,希望对某人有所帮助

我认为您稍微误解了“表情符号”的工作原理。如果您将您感兴趣的 :flag-ma::flag-mc:

进行比较

enter image description here

您会注意到 unicode 的第一部分是相同的 U+1F1F2,它对应于字母“m”。这意味着您实际上不是在处理单个表情符号,它实际上是两个单独的表情符号,当按一定顺序排列时,它们会显示为给定的标志。

作为示例,以下是 GB 表情符号 (U+1F1EC U+1F1E7) 在某些平台上的呈现方式(请注意它并不总是一个标志):enter image description here

关于java - 将两个代码点表情符号放入字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40711387/

相关文章:

java - WorkbenchWindowControlContribution 未在 Eclipse Neon 中完全显示

java - sendMultipartTextMessage 抛出 NullPointerException,但收件人和消息不为空

Scala:产生折叠的中间结果

java - 将表单响应存储在 session 数据中

scala - 案例类别默认应用方法

java - CardView导致应用程序崩溃(如图所示)

java - 为什么通过 JNI 在 Java 和 C++ 之间传递不正确的值?

c++ - 字符串转换为 const char * 问题

C++11 类型推导与 const char *

c++ - 如何在C++中串联char类型