2016-09-22 2 views
-11

Ok, jetzt weiß ich, dass diese Frage schon oft gestellt und beantwortet wurde, aber ich bin gerade auf diese Frage gestoßen und habe diesen (schlechten) Code geschrieben, ohne irgendeinen Hinweis von der vorherige Antworten, und obwohl es mir die richtige Ausgabe gibt, kann ich nicht entscheiden, ob es korrekt ist.Wortzählung in einer Zeichenkette

public class WordCount 
{ 
public static void main(String[] args) throws IOException 
{ 
    System.out.println("Enter a String"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
    String s1= br.readLine(); 
    s1 = s1+" "; 
    String ns = ""; 
    int count = 0; 
    for(int i = 0; i < s1.length(); i++) 
    { 
     char ch = s1.charAt(i); 
     if(ch == ' ') 
     { 
      //ns = ns+ch; 
      count++; 
     } 
     /*else 
     { 
      ns = ns+ch; 
     }*/ 
    } 
    System.out.println("There are "+count+" words in the string");  
} 

} 
+9

Sie beschrieben buchstäblich in Ihrer Frage, warum es eine schlechte Frage ist. Bravo. – rmlan

+0

Ich verstehe ehrlich gesagt nicht den Zweck Ihrer Frage. Wofür sollte dir die Community hier helfen? – kennasoft

+0

'obwohl es mir die richtige Ausgabe gibt, kann ich nicht entscheiden, ob es richtig ist'. Du hast deine eigene Frage beantwortet. – jhamon

Antwort

1
int lineCount = yourString.trim().split("\\s+").length; 

split() Die Funktion gibt eine Reihe von Aufteilen der Zeichenfolge in einer bestimmten Art und Weise hergestellt Token enthält. Sie nehmen Ihre Zeichenfolge, teilen sie durch Leerzeichen und da es ein Array ist - nehmen Sie die Länge davon. Das ist alles, was Sie brauchen, um Wörter zu zählen. (Die regex\\s+ macht die Funktion die Zeichenfolge bei jedem Leerzeichen aufgeteilt, dh ein Array zurück, alle Wörter enthalten.)

Edit: guter Punkt Thomas

+1

Sie sollten die Zeile wahrscheinlich zuschneiden, bevor Sie das Leerzeichen am Ende hinzufügen. Außerdem sollten Sie zwischen Wörtern und Tab-Zeichen mehrere Leerräume suchen. –

+3

Bitte beantworten Sie keine schlechten Fragen. Das ermutigt diese Leute nur, keine Sekunde damit zu verbringen, ihre Fragen zu verbessern, denn dann gibt es immer jemanden, der sich auch nicht um die Qualität dieser Seite kümmert und sie trotzdem beantwortet. – Tom

-1

Wenn Sie das Wort einer Zeichenfolge zählen wollen, ohne space.it ist sehr einfach Ihr Code ist ein bisschen richtig, aber einige Fehler, die ich korrigieren .. versuchen Sie dies zeigen folgendes Beispiel.

//correct the code in loop. 

// s1 is your string. 

for(int i = 0; i < s1.length(); i++) 
{ 


    char ch = s1.charAt(i); 

    if(ch != ' ') 
    { 
     count++; 

    } 
} 
System.out.println(count); 
Verwandte Themen