Merkkijonot ovat tietotyyppejä, joita käytetään edustamaan tekstiä/merkkejä. Tässä artikkelissa esittelemme erilaisia menetelmiä i:n poistamiseenthmerkkijonosta ja puhua mahdollisista ratkaisuista, joita voidaan käyttää niiden saavuttamiseen Pythonilla.
Input: 'Geeks123For123Geeks' Output: GeeksForGeeks Explanation: In This, we have removed the '123' character from a string.>
Poista merkit merkkijonosta Pythonissa
Nämä ovat seuraavat menetelmät, joilla voimme poistaa kirjaimia merkkijonosta Python :
- Käyttämällä str.replace()
- Käyttämällä Kääntää()
- Käyttämällä rekursio
- Alkuperäisen menetelmän käyttäminen
- Käyttämällä viipaletta + ketjutusta
- Käyttämällä str.join()
- Käyttämällä bytearray
- Käyttämällä poista etuliite ()
Poista merkit merkkijonosta käyttämällä vaihtoa()
str.replace() voidaan käyttää korvaamaan kaikki halutun merkin esiintymät. Sitä voidaan käyttää myös merkin poistamiseen merkkijonosta, koska voimme korvata tietyn indeksin tyhjällä merkillä ja siten ratkaista ongelman.
Python 3
# Initializing String> test_str>=> 'GeeksForGeeks'> # Removing char at pos 3> # using replace> new_str>=> test_str.replace(>'e'>, '')> # Printing string after removal> # removes all occurrences of 'e'> print>(>'The string after removal of i'th character( doesn't work) : '> +> new_str)> # Removing 1st occurrence of s, i.e 5th pos.> # if we wish to remove it.> new_str>=> test_str.replace(>'s'>, '',>1>)> # Printing string after removal> # removes first occurrences of s> print>(>'The string after removal of i'th character(works) : '> +> new_str)> |
>
java merkkijono concat
>Lähtö
The string after removal of i'th character( doesn't work) : GksForGks The string after removal of i'th character(works) : GeekForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)
Haittapuoli: Replace():n käytön suurin haittapuoli on, että se epäonnistuu tapauksissa, joissa merkkijonossa on kaksoiskappaleita, jotka vastaavat posissa olevaa merkkiä. i. korvaa() korvaa kaikki tietyn merkin esiintymät ja siten korvaisi kaikki kohdassa i olevien merkkien esiintymät. Voimme silti joskus käyttää tätä toimintoa, jos korvaava merkki esiintyy 1:ssästaika ketjussa.
Poista tietty merkki merkkijonosta käyttämällä Translate()
Tämä menetelmä tarjoaa vahvan mekanismin merkkien poistamiseksi merkkijonosta. Tällä menetelmällä poistimme 123 techcodeview.comsta käyttämällä string.translate() .
Python 3
str> => 'Geeks123For123Geeks'> > print>(>str>.translate({>ord>(i):>None> for> i>in> '123'>}))> |
>
>
Lähtö
GeeksForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: O(m)
Poista tietty merkki merkkijonosta käyttämällä rekursiota
Jos haluat poistaa i:nnen merkin merkkijonosta rekursion avulla, voit määrittää rekursiivisen funktion, joka ottaa argumenteiksi poistettavan merkkijonon ja indeksin. Funktio tarkistaa, onko indeksi yhtä suuri kuin 0, tässä tapauksessa se palauttaa merkkijonon, josta ensimmäinen merkki on poistettu. Jos indeksi ei ole 0, funktio voi palauttaa merkkijonon ensimmäisen merkin, joka on ketjutettu tuloksen kanssa, kun funktio kutsuu uudelleen merkkijonossa, jonka indeksi on vähennetty 1:llä.
Python 3
def> remove_ith_character(s, i):> ># Base case: if index is 0,> ># return string with first character removed> >if> i>=>=> 0>:> >return> s[>1>:]> ># Recursive case: return first character> ># concatenated with result of calling function> ># on string with index decremented by 1> >return> s[>0>]>+> remove_ith_character(s[>1>:], i>-> 1>)> # Test the function> test_str>=> 'GeeksForGeeks'> new_str>=> remove_ith_character(test_str,>2>)> print>(>'The string after removal of ith character:'>, new_str)> # This code is contributed by Edula Vinay Kumar Reddy> |
>
>
Lähtö
The string after removal of ith character: GeksForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)
Poista kirjaimet merkkijonosta alkuperäisellä menetelmällä
Tässä menetelmässä on vain suoritettava a Python-silmukka ja liittää merkit sitä mukaa kun ne tulevat, ja rakentaa uusi merkkijono olemassa olevasta paitsi silloin, kun indeksi on i.
Python 3
test_str>=> 'GeeksForGeeks'> # Removing char at pos 3> new_str>=> ''> for> i>in> range>(>len>(test_str)):> >if> i !>=> 2>:> >new_str>=> new_str>+> test_str[i]> # Printing string after removal> print> (>'The string after removal of i'th character : '> +> new_str)> |
>
>Lähtö
The string after removal of i'th character : GeksForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: O(n), missä n on merkkijonon pituus.
Poista ithMerkki merkkijonosta käyttämällä viipaletta
Yksi voi käyttää merkkijono viipale ja leikkaa merkkijono ennen pos i:tä ja viipaloi pos i:n jälkeen. Sitten käyttämällä merkkijonojen ketjutus molemmista, tsthmerkki saattaa näyttää olevan poistettu merkkijonosta.
Python 3
# Initializing String> test_str>=> 'GeeksForGeeks'> # Removing char at pos 3> # using slice + concatenation> new_str>=> test_str[:>2>]>+> test_str[>3>:]> # Printing string after removal> # removes ele. at 3rd index> print> (>'The string after removal of i'th character : '> +> new_str)> |
suunnittelukuvioita java
>
>Lähtö
The string after removal of i'th character : GeksForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)
Poista ithMerkkijono käyttäminen str.join()
Tässä menetelmässä jokainen merkkijonon elementti muunnetaan ensin luettelon jokaiseksi elementiksi ja sitten jokainen niistä yhdistetään muodostamaan merkkijono määritettyä indeksiä lukuun ottamatta.
Python 3
# Initializing String> test_str>=> 'GeeksForGeeks'> # Removing char at pos 3> # using join() + list comprehension> new_str>=> ''.join([test_str[i]>for> i>in> range>(>len>(test_str))>if> i !>=> 2>])> # Printing string after removal> # removes ele. at 3rd index> print> (>'The string after removal of i'th character : '> +> new_str)> |
>
>Lähtö
The string after removal of i'th character : GeksForGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)
Poista kirjaimet merkkijonosta Pythonissa bytearraylla
Määritä funktio remove_char(s, i), joka ottaa syötteenä merkkijonon s ja kokonaisluvun i. Muunna sitten syöttömerkkijono s tavuryhmäksi käyttämällä bytearray(s, 'utf-8'). Poista i'th elementti kohteesta bytearray käyttämällä del b[i]:tä. Muunna muokattu bytearray takaisin merkkijonoksi komennolla b.decode() ja palauta muokattu merkkijono.
Python 3
def> remove_char(s, i):> >b>=> bytearray(s,>'utf-8'>)> >del> b[i]> >return> b.decode()> # Example usage> s>=> 'hello world'> i>=> 4> s>=> remove_char(s, i)> print>(s)> |
>
>
Lähtö
hell world>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)
Poista kirjaimet merkkijonosta käyttämällä removeprefix()
poista etuliite() poistaa etuliitteen ja palauttaa loppuosan merkkijonosta. Voimme poistaa kirjaimia merkkijonosta minkä tahansa tietyn hakemiston osalta jakamalla merkkijonon kahteen puolikkaaseen siten, että kirjain, jonka halusimme poistaa, tulee minkä tahansa kahden osion etuliitteestä, ja sitten voimme soveltaa menetelmää kirjaimen poistamiseksi.
Python 3
java merkkijono isempty
#initializing the string> s>=>'techcodeview.com'> #if you wanted to remove 'G' of 0th index> s1>=>s.removeprefix(>'G'>)> #if you wanted to remove 'f'> s2>=>s[:>5>]>+>s[>5>:].removeprefix(>'f'>)> print>(s1)> print>(s2)> |
>
>
Lähtö:
eeksforGeeks GeeksorGeeks>
Aika monimutkaisuus: Päällä)
Tilan monimutkaisuus: Päällä)