Comment comptez-vous la longueur d'une chaîne (exemple "Bonjour, M. John. Passez une bonne journée." En supprimant les virgules, les points et les espaces?
string = "Hello, Mr. John. Have a good day." print(len(string))
Le nombre devrait être 23. Je viens avec 33 avec les virgules, les points et les espaces blancs.
6 Réponses :
print(len(string.replace(",", "").replace(".", "").replace(" ","")))
Je recommanderais une expression régulière ici. De cette façon, vous n'avez pas besoin de faire plusieurs str.replace
.
In [8]: import re In [9]: string = "Hello, Mr. John. Have a good day." In [10]: new_str = re.sub('[ .,]', '', string) In [11]: len(new_str) Out[11]: 23
Ici, le groupe de remplacement est [ .,]
. Tout ce qui est entre crochets sera remplacé, ce qui dans ce cas est un espace, un point ou une virgule.
Les espaces peuvent être plus que de simples espaces, utilisez donc \ s :
import re string = "Hello, Mr. John. Have a good day." print(len(re.sub(r'[,.\s]+', '', string)))
23
La réponse @yixizhou est simple et précise, mais si vous voulez éviter l'autre chose, vous pouvez utiliser une expression régulière pour une longueur correcte comme celle-ci
import re string = "Hello, Mr. John. Have a good day." print(len("".join(re.findall(r'[A-Z0-9a-z]', string))) )
#include <iostream> #include <string> using namespace std; int main() { string userText; int i = 0; string str1; string str2=""; getline(cin, userText); // Gets entire line, including spaces. while(i<userText.size()){ if(userText.at(i) != ' ' && userText.at(i) !=',' && userText.at(i) !='.'){ str1 = userText.at(i); str2 = str2 + str1; } ++i; } cout << str2.size()<<endl; return 0; }
user_text = input() numOfChars = 0 #number of charachters count = 0 #to count index of user_text for i in user_text: if user_text[count] != ' ' and user_text[count] != '.' and user_text[count] != ',': numOfChars += 1 count += 1 print(numOfChars)
Merci d'avoir contribué à SO! Veuillez ajouter un bref commentaire ou une description de votre réponse expliquant pourquoi ou comment elle résout la question du PO différemment des autres réponses déjà soumises.