首页 > 解决方案 > Java / Scala - 从 Hexacode 获取表情符号

问题描述

假设我有一个表情符号的六进制代码,我怎样才能从它生成完整的表情符号。如果它是我能够生成的单个十六进制代码如下:

val str1 = "1F471"
val hex = Integer.parseInt(str1, 16)
println(new String(Character.toChars(hex)))

他的指纹。但是,如果我想用第二个组件(即 1F3FF)给出的肤色打印完整的表情符号,需要做什么?

val str = "1F471 1F3FF"
val parts = str.split(" ").map(x => Integer.parseInt(x, 16))
println(mergeEmojis(new String(Character.toChars(parts(0))), new String(Character.toChars(parts(1))))) 
// how can mergeEmojis() be implemented?

标签: javascalaunicodeemoji

解决方案


正如@Ackdari 所建议的,连接字符是有效的

  // method to convert array of emoji codes to emoji string
  private def toEmoji(hexCodes: Array[Int]): String = {
    var emojiCharsCombined: Array[Char] = Array.emptyCharArray
    hexCodes.foreach(emojiComponent => {
      val emojiChars: Array[Char] = Character.toChars(emojiComponent)
      emojiCharsCombined = concat(emojiCharsCombined, emojiChars)
    })
    new String(emojiCharsCombined)
  }

推荐阅读