代码之家  ›  专栏  ›  技术社区  ›  Nicholas Miller

如何在Kotlin中将数字转换成字符?

  •  0
  • Nicholas Miller  · 技术社区  · 5 年前

    我正试图找到最简单的方法来将一个数字(0..9)转换为Kotlin中相应的字符“0”..9”。

    我最初的尝试是编写以下代码:

    fun convertToCharacter() {
        val number = 0
    
        val character = number.toChar()
        println(character)
    }
    

    当然,在运行之后,我很快就看到这会产生10000个,而不是像我所期望的“0”。然后,记住如何在Java中执行此操作,我修改了代码以添加“0”,但这样就无法编译。

    fun convertToCharacter() {
        val number = 0
    
        val character = number.toChar() + '0'
        println(character)
    }
    

    在Kotlin中,把一个数字转换成它各自对应的字符的合适方法是什么?理想情况下,我尽量避免向上拉ASCII表来完成此操作(我知道我可以将48添加到数字中,因为在ASCII中48->'0')。

    0 回复  |  直到 5 年前
        1
  •  1
  •   David Soroko    5 年前

    怎么样 0.toString() 0.toChar() ? 如果你是在一位数之后,那么 0.toString()[0] Char 类型

        2
  •  1
  •   Razzlez    5 年前

    你可以用 这样地:

    fun Int.toReadableChar(): Char {
        return ('0'.toInt() + this).toChar()
    }
    

    您可以将此应用于任何其他想要的类:)

    println(7.toReadableChar())
    
    >> 7
    
        3
  •  1
  •   Ilya    5 年前
    val character = '0' + number
    

    是最短的路径,假设数字在0..9范围内

        4
  •  1
  •   Ben P.    5 年前

    就像你说的,也许最简单的方法 Int Char 同一个数字的表示是加48并调用 toChar() :

    val number = 3
    val character = (number + 48).toChar()
    println(character) // prints 3
    

    String 然后使用 toCharArray()[0] 烧焦

    val number = 3
    val character = number.toString().toCharArray()[0]
    println(character) // prints 3
    

    编辑:本着你问题的尝试精神,你可以用 '0'.toInt() 得到你期望的结果:

    val number = 7
    val character = (number + '0'.toInt()).toChar()
    println(number) // prints 7