如何在Kotlin中将字符串转换为字符?

28
fun main(args: Array<String>) {
    val StringCharacter = "A"
    val CharCharacter = StringCharacter.toChar()
    println(CharCharacter)
}

我无法将字符串A转换为字符。

我知道StringCharacter = 'A'可以将其转换为字符,但我需要进行转换。

谢谢。


你的代码片段有什么问题? - nhaarman
1
未解决的引用:toChar() - Khayyam
如果字符串为空,则执行val c = StringCharacter[0]将会得到StringIndexOutOfBoundsException异常。 - Venkata Raju
3个回答

41

一个CharSequence(例如 String)可以是空的,可以只有一个字符,也可以有多个字符。

如果您想要一个“返回单个字符或在 char sequence 为空或具有多个字符时抛出异常”的函数,则需要使用single

val string = "A"
val char = string.single()
println(char)

如果您想以不同的名称调用single,您可以创建自己的扩展函数来实现:

fun CharSequence.toChar() = single()

使用方法:

val string = "A"
val char = string.toChar()
println(char)

7

你不能将一个String转换为Char,因为一个String是由Chars数组组成的。相反,从String中选择一个Char

val string = "A"
val character = string.get(0) // Or string[0]
println(character)

在 Kotlin 中,get(0)[0] 是相同的,因此您可以使用更符合惯用语的 string[0] 来获取第一个字符。 - D3xter

5

一个字符串不能被转换为字符,因为字符串是字符数组。您可以将字符串转换为字符数组,或从该字符串中获取一个字符。

例如:

val a = "Hello"
val ch1 = a.toCharArray()[0]   // output: H 
val ch2 = a[0]    // output: H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接