2017-05-25 33 views
1
fun main(args: Array<String>) { 
    val StringCharacter = "A" 
    val CharCharacter = StringCharacter.toChar() 
    println(CharCharacter) 
} 

我无法将字符串A转换为字符。 我知道StringCharacter ='A'使它成为字符,但我需要转换。如何将字符串转换为Kotlin中的字符?

谢谢。

+0

什么不会在你的代码片段工作? – nhaarman

+0

未解决的引用:toChar() – Khayyam

+0

'val c = StringCharacter [0]'你会得到'StringIndexOutOfBoundsException'是字符串是空的 –

回答

5

CharSequence(例如String)可以是空的,具有一个单独的字符,或有一个以上的字符。

如果你想有一个函数“返回单个字符,或者抛出一个异常,如果该字符序列为空或有一个以上的字符”,那么你想single

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

如果你想调用single一个不同的名称,你可以创建自己的extension function这样做:

fun CharSequence.toChar() = single() 

用法:

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

无法将String转换为Char,因为StringChars的数组。取而代之的是,选择从String一个Char

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

'get(0)'和'[0]'在kotlin中是一样的,所以你可以得到字符串[0]'的第一个字符更具惯用性 – D3xter

0

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

例子:

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