Kotlin:
Ta bort citattecken från en sträng
Hur man gör:
Här är ett enkelt sätt att ta bort båda typerna av citattecken från en sträng i Kotlin:
fun removeQuotes(input: String): String {
return input.replace("\"", "").replace("'", "")
}
fun main() {
val stringWithQuotes = "Kotlin \"rockar\" det är 'coolt'"
val stringWithoutQuotes = removeQuotes(stringWithQuotes)
println(stringWithoutQuotes) // Utdata: Kotlin rockar det är coolt
}
Och om du vill ta bort bara en typ av citattecken, hoppa bara över det andra replace-anropet.
fun removeDoubleQuotes(input: String): String {
return input.replace("\"", "")
}
fun removeSingleQuotes(input: String): String {
return input.replace("'", "")
}
fun main() {
val stringWithQuotes = "Kotlin \"rockar\" det är 'coolt'"
println(removeDoubleQuotes(stringWithQuotes)) // Utdata: Kotlin rockar det är 'coolt'
println(removeSingleQuotes(stringWithQuotes)) // Utdata: Kotlin "rockar" det är coolt
}
Fördjupning
Historiskt sett har hantering av strängar och tecken som ska ignoreras varit en kärndel av programmering, eftersom text är ett grundläggande sätt vi interagerar med data på. Citattecken inom strängar behöver ibland ignoreras. Detta indikeras av ett föregående omvänt snedstreck (t.ex. "Hon sa, \"Hej!\""
). När du bearbetar sådana strängar kan du behöva ta bort escape-tecken, eller själva citattecknen för att få en renare eller mer användbar text.
Alternativ till replace
-metoden inkluderar borttagning baserad på reguljära uttryck eller manuell tolkning av strängen, tecken för tecken. Dock kan reguljära uttryck vara överdrift för enkla operationer och manuell tolkning är mindre effektiv än att använda inbyggda strängfunktioner. Kotlins replace
-funktion utnyttjar den underliggande Javas String
replace
-metod, som är väl optimerad för prestanda.
När det gäller implementering är det värt att nämna att Kotlin är interoperabelt med Java, så i effekt är alla operationer du utför på strängar lika prestandaeffektiva som de skulle vara i Java. Det är avgörande när man tar bort citattecken att vara medveten om kantfall, som inbäddade citattecken, vilket kan kräva en mer sofistikerad metod, möjligtvis med användning av reguljära uttryck eller ett parserbibliotek.
Se även
För mer kontext om hantering av strängar i Kotlin, kan du kolla in den officiella dokumentationen:
För djupare dykningar i reguljära uttryck och tolkning i Kotlin: