2017-05-25 90 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