Ciągi znaków Pythona pozostają niezmienne, co oznacza, że możemy je zmieniać w zależności od wykonywanych przez nas operacji. Najważniejszą funkcjonalnością Pythona jest manipulacja ciągami. Do zmiany ciągu można zastosować wiele metod, w tym metody dzielenia łańcucha na kawałki, pętle po jego elementach i metody łańcuchowe. Ważne jest, aby zrozumieć, że ciąg znaków ze spacjami jest w rzeczywistości pustym ciągiem o długości niezerowej. Ten problem zostanie omówiony w tym samouczku, a także możliwe rozwiązanie. W rezultacie, gdy używamy tylko() Lub ' nie ', aby sprawdzić, czy ciąg znaków jest pusty, w rzeczywistości spacja jest zliczana jako znak ciągu, dlatego ciąg ze spacją nie będzie liczony jako ciąg pusty.
string.replaceall w Javie
W Pythonie możemy użyć jednego z podstawowych sposobów opisanych poniżej, aby sprawdzić pusty ciąg.
- Używanie operatora not
- Korzystanie z funkcji len().
- Używanie not + string.isspace()
- Używanie len() + string.strip()
- Używanie i + string.strip()
- Używanie __eq__
Używanie nie operatora
The nie operator wykonuje tę samą pracę co operator tylko() funkcjonować. W Pythonie pusty ciąg znaków jest rzeczywiście równy False. The nie operatora można użyć do określenia, czy ciąg znaków jest rzeczywiście pusty, czy nie. The nie operacja w Pythonie zapobiega interpretacji ciągu znaków jako pustego ciągu, jeśli zawiera spacje.
Przykład
W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie użyliśmy warunku „if else”, aby sprawdzić, czy dany ciąg znaków jest pusty, jeśli nie występuje w ciągu. Nie jest jednak pusty. Białe znaki nie są traktowane przez operator not jako puste ciągi znaków, dlatego wynik nie będzie pustym ciągiem w przypadku drugiego ciągu wejściowego. Na koniec wynik został wydrukowany.
Kod:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if not string1: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if not string2: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty
Korzystanie z metody len().
Użyjemy Pythona tylko() funkcja określająca długość łańcucha. Następnie, jeśli długość łańcucha jest równa 0, ciąg jest pusty; w przeciwnym razie tak nie jest. Podczas korzystania z tylko() technika w Pythonie, ciąg nie jest tak naprawdę uważany za pusty ciąg, jeśli zawiera spacje.
Przykład
W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie obliczono długość każdego łańcucha za pomocą funkcji len() Pythona. Następnie użyliśmy pętli „if-else”, aby sprawdzić, czy długość łańcucha jest równa zero, w którym to przypadku warunek wypisuje, że ciąg jest pusty i w takim przypadku drukowany ciąg nie jest pusty. Białe znaki w ciągu znaków nie są uznawane za puste tylko() , co spowoduje niepusty ciąg. Na koniec wydrukowaliśmy wynik obu ciągów.
Kod:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' length1 = len(string1) length2 = len(string2) if length1 == 0: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if length2 == 0: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty
Używanie operatora not + str.isspace()
Sprawdza, czy na pasku nie ma białych znaków, w taki sam sposób, jak metoda rozebrać się() funkcja tak. Jednakże, rozebrać się() funkcja zajmuje dużo czasu, w przeciwieństwie do ul. isspace() ponieważ strip() musi wykonać operację usuwania, co wymaga dużo pracy obliczeniowej.
Przykład
W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Zastosowano warunek „jeśli-inaczej”. Korzystaliśmy z isspace() metodę w warunku if else, który sprawdza, czy występują wszystkie spacje w ciągach znaków. Na koniec wydrukowano dane wyjściowe i widać, że oba ciągi znaków są puste.
Kod:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if string1 and not string1.isspace(): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if string2 and not string2.isspace(): print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
Wyjście:
string, string1 = '', with no spaces is not empty string, string2 = ' ', with spaces is not empty
Używanie len() + string.strip()
W Pythonie użyj len() + string.strip() technika sprawdzania, czy ciąg znaków jest całkowicie pusty. Białe znaki w ciągu znaków są usuwane za pomocą metody string.strip() metoda. Jeśli w ciągu znaków jest spacja, funkcja rozebrać się() metoda usuwa go i tylko() funkcja sprawdza, czy ciąg znaków jest pusty, czy nie.
Przykład
Niezależnie od tego, ile spacji umieścimy w ciągu, usuwa je wszystkie i sprawdza długość łańcucha; jeśli zwróci 0, ciąg jest pusty; inaczej, tak nie jest.
Kod:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if len(string1.strip()): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if len(string2.strip()): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
Użycie operatora „i” + funkcji strip().
Zauważyliśmy, że białe znaki w łańcuchach nie zawsze są interpretowane jako puste ciągi. Kiedy więc używamy rozebrać się() funkcję sprawdzającą, czy ciąg znaków jest pusty, rzeczywiście możemy również sprawdzić, czy nie ma białych znaków.
Przykład
przekonwertuj str na int
W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie użyliśmy warunku if-else i the rozebrać się() funkcja sprawdzająca, czy ciąg znaków jest pusty, czy nie. Jeśli warunek ma wartość Fałsz, ciąg znaków jest pusty, a w przeciwnym razie wykonywane są bloki. W tej metodzie białe znaki są również uważane za pusty ciąg znaków. Na koniec wynik został wydrukowany.
Kod:
#input empty with and without spaces string s = '' str = ' ' if string1 and string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2 and string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
Korzystanie z funkcji Strip().
Zauważyliśmy, że białe znaki w łańcuchach nie zawsze są interpretowane jako puste ciągi. Kiedy więc używamy rozebrać się() funkcję sprawdzającą, czy ciąg znaków jest pusty, rzeczywiście możemy również sprawdzić, czy nie ma białych znaków.
instrukcja Java
Przykład
W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg1 ma białe znaki, a ciąg2 jest pustym ciągiem. Użyliśmy warunku if else, aby usunąć ciągi znaków, usunąć białe znaki, a następnie zwrócić pusty ciąg, jeśli ciąg stanie się pusty. W przeciwnym razie ciąg nie jest pusty. Na koniec wynik został wydrukowany.
Kod:
#input empty with and without spaces string s = '' str = ' ' if string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
Korzystanie z metody __eq__
Dunder identyfikuje metody za pomocą dwóch podkreśleń przed i po ich nazwach. The __równik__ metody można również użyć do sprawdzenia, czy ciąg znaków jest pusty. Dzwoniąc do __równik__ technika w Pythonie, ciąg nie jest uważany za pusty, jeśli zawiera spacje.
Przykład
W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. The __równik__ funkcja została użyta. W warunku if-else użyliśmy podanej metody, aby sprawdzić, czy ciąg znaków jest pusty, czy nie. Na koniec wynik został wydrukowany. W tym podejściu białe znaki nie są traktowane jako puste ciągi znaków.
Kod:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if ''.__eq__(string1): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if ''.__eq__(string2): print(f'string, string1 = '{string2}', with no spaces is empty') else: print(f'string, string1 = '{string2}', with no spaces is not empty')
Wyjście:
string, string1 = '', with no spaces is empty string, string1 = ' ', with no spaces is not empty