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

Ich kann Zeichenfolge A nicht in Zeichen umwandeln. Ich weiß, dass StringCharacter = 'A' macht es char, aber ich brauche die Konvertierung.Wie konvertiert man Zeichenkette in Kotlin?

Danke.

+0

Was in Ihrem Code-Snippet nicht funktioniert? – nhaarman

+0

Nicht aufgelöste Referenz: toChar() – Khayyam

+0

'val c = StringCharacter [0]' Sie erhalten 'StringIndexOutOfBoundsException' ist String ist leer –

Antwort

5

A CharSequence (z.B. String) leer sein können, haben ein einzelnes Zeichen oder mehr als ein Zeichen.

Wenn Sie eine Funktion wünschen, dass „das einzelne Zeichen zurückgibt, oder eine Ausnahme auslöst, wenn die Zeichen-Sequenz leer ist oder mehr als ein Zeichen“, dann wollen Sie single:

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

Und wenn Sie wollen rufen single durch einen anderen Namen, den Sie Ihren eigenen extension function erstellen können, dies zu tun:

fun CharSequence.toChar() = single() 

Verbrauch:

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

Sie können String nicht in Char konvertieren, da String ein Array von Chars ist. Stattdessen wählen Sie eine Char vom String:

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

' get (0) 'und' [0] 'ist das gleiche in Kotlin, so dass Sie bekommen können das erste Zeichen mit 'string [0]', das idiomatischer ist – D3xter

0

Ein String kann nicht in ein Char konvertiert werden, da String ein Array von Zeichen ist. Sie können einen String in ein Char-Array konvertieren oder Sie erhalten ein Zeichen aus diesem String.

Beispiel:

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