如何在Kotlin中将Int转换为Char

时间:2016-11-07 20:12:45

标签: kotlin

使用Java原语很容易将char代码转换为符号

int i = 65;
char c = (char) i; // 'A'

如何与Kotlin一样?

2 个答案:

答案 0 :(得分:26)

使用int.toChar()功能执行此操作。

答案 1 :(得分:1)

首先使用ByteBuffer将Int转换为ByteArray(具有正确的字节顺序),然​​后使用适当的String构造函数。

import java.nio.ByteBuffer
import java.nio.ByteOrder
import java.nio.charset.Charset

fun intToByteArray(n: Int, byteOrder: ByteOrder) =
    ByteBuffer.allocate(4).order(byteOrder).putInt(n).array()

fun byteArrayToUnicode(ba: ByteArray, charSet: Charset) =
    String(ba, charSet)

fun intToUniCode(n: Int, byteOrder: ByteOrder, charSet: Charset) =
    byteArrayToUnicode(intToByteArray(n, byteOrder), charSet)

fun test() {
    val charSet = Charset.forName("UTF-32BE")
    val n = 0x000000f7 // division sign (U+00F7)
    val s = intToUniCode(n, ByteOrder.BIG_ENDIAN, charSet)
    println(s)
}