Usuwanie cudzysłowów z ciągu znaków

Kotlin:
Usuwanie cudzysłowów z ciągu znaków

Jak to zrobić:

Oto prosty sposób, aby usunąć oba typy cudzysłowów ze stringa w Kotlinie:

fun removeQuotes(input: String): String {
    return input.replace("\"", "").replace("'", "")
}

fun main() {
    val stringWithQuotes = "Kotlin \"rocks\" it's 'cool'"
    val stringWithoutQuotes = removeQuotes(stringWithQuotes)
    println(stringWithoutQuotes) // Wyjście: Kotlin rocks its cool
}

A jeśli chcesz usunąć tylko jeden typ cudzysłowu, po prostu pomiń drugie wywołanie replace.

fun removeDoubleQuotes(input: String): String {
    return input.replace("\"", "")
}

fun removeSingleQuotes(input: String): String {
    return input.replace("'", "")
}

fun main() {
    val stringWithQuotes = "Kotlin \"rocks\" it's 'cool'"
    println(removeDoubleQuotes(stringWithQuotes)) // Wyjście: Kotlin rocks it's 'cool'
    println(removeSingleQuotes(stringWithQuotes)) // Wyjście: Kotlin "rocks" its cool
}

Wnikliwa analiza

Historycznie, obsługa stringów i znaków ucieczki była podstawową częścią programowania, ponieważ tekst jest podstawowym sposobem, w jaki wchodzimy w interakcję z danymi. Cudzysłowy wewnątrz stringów czasami muszą być poprzedzone znakiem ucieczki (np. "She said, \"Hi!\""). Przetwarzając takie stringi, możesz potrzebować usunąć znaki ucieczki lub same cudzysłowy, aby uzyskać czystszy lub bardziej użyteczny tekst.

Alternatywy dla metody replace obejmują usuwanie oparte na wyrażeniach regularnych lub ręczne parsowanie stringa, znak po znaku. Jednak regex może być nadmiernym rozwiązaniem dla prostych operacji, a ręczne parsowanie jest mniej wydajne niż korzystanie z wbudowanych funkcji stringów. Funkcja replace w Kotlinie korzysta z leżącej u jej podstaw metody String replace Javy, która jest dobrze zoptymalizowana pod kątem wydajności.

Pod względem implementacji warto wspomnieć, że Kotlin jest interoperacyjny z Javą, więc w efekcie wszelkie operacje, które wykonujesz na stringach, są równie wydajne, jak byłyby w Javie. Podczas usuwania cudzysłowów ważne jest, aby być świadomym przypadków brzegowych, takich jak zagnieżdżone cudzysłowy, które mogą wymagać bardziej zaawansowanego podejścia, możliwie z wykorzystaniem wyrażeń regularnych lub biblioteki parsującej.

Zobacz także

Aby uzyskać więcej kontekstu na temat obsługi stringów w Kotlinie, możesz sprawdzić oficjalną dokumentację:

Aby zagłębić się w wyrażenia regularne i parsowanie w Kotlinie: