U ovom članku raspravljat ćemo o tome kako zamijeniti dva znaka u nizu. Postoje različiti pristupi koji će nam pomoći razumjeti kako možemo zamijeniti dva znaka u nizu.
Pristup 1: Korištenje metode list() i join().
Ako želimo zamijeniti dva znaka u nizu, možemo koristiti popis() i pridružiti() metoda.
Primjer:
kako pretvoriti cijeli broj u string 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)
Izlaz:
hewlo lorld
Obrazloženje:
U gornjem kodu prvo definiramo ulazni niz kao 'Pozdrav svijete' . Nakon toga pretvaramo niz u popis znakova pomoću popis() metoda. Dalje, koristimo tuple raspakiranje zamijeniti znakove na indeks 2 i indeks 6 u popisu. Na kraju, pretvaramo popis natrag u niz koristeći pridružiti() metodu i ispišite novi niz
Pristup 2: Korištenje rezanja i ulančavanja
Ako želimo zamijeniti dva znaka u nizu, možemo koristiti rezanje na kriške i ulančavanje metoda.
Primjer:
# 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)
Izlaz:
hewlo lorld
Objašnjenje:
U ovom pristupu koristimo rezanje struna i ulančavanje zamijeniti likove. Konac narežemo na četiri dijela: na podniz prije prvog znaka koji treba zamijeniti (niz[:2]) , prvi zamijenjeni znak (string[6]) , podniz između zamijenjenih znakova (string[3:6]) , drugi zamijenjeni znak (string[2]) , i podniz nakon drugog zamijenjenog znaka (string[7:]) . Nakon toga spajamo te podnizove željenim redoslijedom kako bismo stvorili novi niz.
Pristup 3: Korištenje razumijevanja popisa
Ako želimo zamijeniti dva znaka u nizu, možemo koristiti razumijevanje popisa metoda.
Primjer:
# 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)
Izlaz:
hewlo lorld
Obrazloženje:
U ovom pristupu stvaramo popis znakova korištenjem razumijevanja popisa koji ponavlja indekse ulaznog niza. Koristimo uvjetni izraz unutar razumijevanja popisa za zamjenu znakova indeks 2 i indeks 6 .
Izraz niz[6 if i == 2 else 2] vraća znak at indeks 6 ako je trenutni indeks 2 , i vraća znak na indeks 2 ako je trenutni indeks 6 . Inače, vraća izvorni znak na trenutnom indeksu. Nakon toga, pretvaramo popis znakova natrag u niz koristeći join() metoda i ispišite novi niz.
Ovaj pristup može biti manje učinkovit od prethodnih pristupa jer stvara novi popis znakova, ali može biti koristan u situacijama kada je razumijevanje popisa praktičnije ili intuitivnije za korištenje.
Pristup 4: Korištenje ugrađenog tipa 'bytearray'
Ako želimo zamijeniti dva znaka u nizu, možemo koristiti niz bajtova metoda.
Primjer:
# 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)
Izlaz:
hewlo lorld
Obrazloženje:
U ovom pristupu, prvo pretvaramo ulazni niz u a niz bajtova koristiti niz bajtova() ugrađena funkcija. Nakon toga specificiramo 'utf-8' kodiranje za pretvaranje niza u bajt, a zatim zamijenimo dva znaka na indeks 2 i indeks 6 izravnim pristupom odgovarajućim elementima u niz bajtova . Na kraju pretvaramo niz bajtova natrag na niz pomoću dekodirati() metodu i ispišite novi niz.
Ovaj pristup je učinkovit jer koristi a promjenjiv niz bajtova umjesto stvaranja novog niza ili popisa.