I den här artikeln kommer vi att diskutera hur man byter två tecken i en sträng. Det finns olika tillvägagångssätt som hjälper dig att förstå hur vi kan byta två tecken i en sträng.
Metod 1: Använd list() och join()-metoden
Om vi vill byta två tecken i en sträng kan vi använda lista() och Ansluta sig() metod.
Exempel:
exempel på lista i java
# Input string string = 'hello world' # Convert string to list of characters char_list = list(string) # Swap characters at index 2 and index 6 char_list[2], char_list[6] = char_list[6], char_list[2] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
Produktion:
hewlo lorld
Förklaring:
I koden ovan definierar vi först inmatningssträngen som 'Hej världen' . Efter det konverterar vi strängen till en lista med tecken med hjälp av lista() metod. Därefter använder vi tupel uppackning att byta tecken på index 2 och index 6 i listan. Slutligen konverterar vi listan tillbaka till en sträng med hjälp av Ansluta sig() metod och mata ut den nya strängen
Tillvägagångssätt 2: Använd skivning och sammanfogning
Om vi vill byta två tecken i en sträng kan vi använda skivning och sammanlänkning metod.
Exempel:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 new_string = string[:2] + string[6] + string[3:6] + string[2] + string[7:] # Output new string print(new_string)
Produktion:
hewlo lorld
Förklaring:
I detta tillvägagångssätt använder vi skärning av snöre och sammanlänkning för att byta karaktärer. Vi skär strängen i fyra delar: den delsträng före det första tecknet som ska bytas (sträng[:2]) , den första bytta karaktären (sträng[6]) , delsträngen mellan de utbytta tecknen (sträng[3:6]) , det andra utbytta tecknet (sträng[2]) , och delsträngen efter det andra bytta tecknet (sträng[7:]) . Efter det sammanfogar vi dessa delsträngar i önskad ordning för att skapa den nya strängen.
Tillvägagångssätt 3: Använda en listförståelse
Om vi vill byta två tecken i en sträng kan vi använda listförståelse metod.
Exempel:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 char_list = [string[i] if i not in (2, 6) else string[6 if i == 2 else 2] for i in range(len(string))] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
Produktion:
hewlo lorld
Förklaring:
I det här tillvägagångssättet skapar vi en lista med tecken med hjälp av en listförståelse som itererar över inmatningssträngens index. Vi använder ett villkorligt uttryck inom listförståelsen för att byta tecken vid index 2 och index 6 .
Uttrycket sträng[6 om i == 2 annat 2] returnerar tecknet kl index 6 om det aktuella indexet är 2 , och returnerar tecknet på index 2 om det aktuella indexet är 6 . Annars returnerar den det ursprungliga tecknet vid det aktuella indexet. Efter det konverterar vi listan med tecken tillbaka till en sträng med hjälp av join() metod och mata ut den nya strängen.
Detta tillvägagångssätt kan vara mindre effektivt än de tidigare tillvägagångssätten eftersom det skapar en ny lista med tecken, men det kan vara användbart i situationer där en listförståelse är bekvämare eller mer intuitiv att använda.
Tillvägagångssätt 4: Använder den inbyggda typen 'bytearray'
Om vi vill byta två tecken i en sträng kan vi använda bytearray metod.
Exempel:
# Input string string = 'hello world' # Convert string to bytearray byte_array = bytearray(string, 'utf-8') # Swap characters at index 2 and index 6 byte_array[2], byte_array[6] = byte_array[6], byte_array[2] # Convert bytearray back to string new_string = byte_array.decode() # Output new string print(new_string)
Produktion:
hewlo lorld
Förklaring:
I detta tillvägagångssätt konverterar vi först inmatningssträngen till a bytearray använda bytearray() inbyggd funktion. Efter det anger vi 'utf-8' kodning för att konvertera strängen till byte, och sedan byter vi de två tecknen på index 2 och index 6 genom att direkt komma åt motsvarande element i bytearray . Slutligen konverterar vi bytearray tillbaka till en sträng med hjälp av avkoda() metod och mata ut den nya strängen.
Detta tillvägagångssätt är effektivt eftersom det använder en föränderlig bytearray istället för att skapa en ny sträng eller lista.