/*
Datei............: Aufg1104.java
Projekt..........: Einführung in die Java-Programmierung
Erstellt.........: 18.11.97, Guido Krüger
Geändert.........: --
Aufgabe..........: Musterlösung zu Aufgabe 11.04
Kommentare.......:

Am einfachsten ist es, für diese Aufgabe die Klasse 
StringTokenizer zu verwenden und ihr das Zerlegen des
Strings in einzelne Worte zu überlassen. Ihr Standardverhalten
ist so eingestellt, daß gerade alle Whitespaces (also
Leerzeichen, Tabulatoren und Zeilenschaltungen) als
Trennzeichen zwischen zwei Tokens angesehen werden.

Noch einfacher ginge es mit der Methode countTokens,
die alle noch nicht bearbeitenden Tokens im String zählt.
Dieser Ansatz wird durch die weiter unten vorgestellte
Methode wcnt1 aufgezeigt.
*/
import java.util.*;

public class Aufg1104
{
  public static void main(String args[])
  {
	String s = "Dies ist ein Test (jau o hee)";
	System.out.println("wcnt(\"" + s + "\") = " + wcnt(s));
	System.out.println("wcnt1(\"" + s + "\") = " + wcnt1(s));
	s = "1 2 3 4 5 6 7 8 9 10";
	System.out.println("wcnt(\"" + s + "\") = " + wcnt(s));
	System.out.println("wcnt1(\"" + s + "\") = " + wcnt1(s));
	s = "   1.2.3.4.5.6.7.8.9    10  ";
	System.out.println("wcnt(\"" + s + "\") = " + wcnt(s));
	System.out.println("wcnt1(\"" + s + "\") = " + wcnt1(s));
  }

  public static int wcnt(String s)
  {
	StringTokenizer st = new StringTokenizer(s);
	int cnt = 0;
	while (st.hasMoreTokens()) {
	  st.nextToken();
	  ++cnt;
	}
	return cnt;
  }

  public static int wcnt1(String s)
  {
	return (new StringTokenizer(s)).countTokens();
  }
}

