1
votes

Compter la longueur d'entrée sans espaces, points ou virgules

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.


0 commentaires

6 Réponses :


0
votes
print(len(string.replace(",", "").replace(".", "").replace(" ","")))

0 commentaires

1
votes

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.


0 commentaires

1
votes

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


0 commentaires

2
votes

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))) ) 


0 commentaires

0
votes
#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;
}

0 commentaires

0
votes
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)

1 commentaires

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.