Contar palavras

ola amigos alguem sabe me dizer como faço para contar as palavras de um texto? eu tentei usar um metodo de token mas nao consegui.

obrigado

import java.text.BreakIterator;
import java.util.Locale;

class TesteBreakIterator {
    public static void printEachForward(BreakIterator boundary, String source) {
        boundary.setText (source);
        int start = boundary.first();
        for (int end = boundary.next();
                end != BreakIterator.DONE;
                start = end, end = boundary.next()) {
            String word = source.substring(start,end);
            if (!"".equals (word.trim())) {
                if (end - start &gt 1 || Character.isLetter (source.charAt(start)))
                    System.out.println (word);
            }
        }
    }    
    
    public static void main(String[] args) {

        String texto = 
            "De um dos cabeços da Serra dos Órgãos desliza um fio de " 
            + "água que se dirige para o norte, e engrossado com os "
            + "mananciais que recebe no seu curso de dez léguas, torna-se "
            + "rio caudal. É o Paquequer: saltando de cascata em "
            + "cascata, enroscando-se como uma serpente, vai depois se "
            + "espreguiçar na várzea e embeber no Paraíba, que rola "
            + "majestosamente em seu vasto leito. Dir-se-ia que, "
            + "vassalo e tributário desse rei das águas, o pequeno rio, "
            + "altivo e sobranceiro contra os rochedos, curva-se "
            + "humildemente aos pés do suserano. Perde então a beleza "
            + "selvática; suas ondas são calmas e serenas como as de um "
            + "lago, e não se revoltam contra os barcos e as canoas que "
            + "resvalam sobre elas: escravo submisso, sofre o látego do "
            + "senhor.";
        printEachForward (BreakIterator.getWordInstance (new Locale ("pt", "BR")), texto);
    }   
}