我想数词。我使用hasNextChar和getChar方法。该句子可能包含所有字符。这是我的代码:

        boolean isWord = false;

        while(hasNextChar()){
            char current = getChar();
            switch(current){
                case ' ' : case '.' : case ',' : case '-' :
                    isWord = false;
                default:
                    if(!isWord) wordCount++;
                    isWord = true;
            }
        }


到目前为止,它可以工作,例如当我最后有一个“。”时,它会给我8个而不是7个单词。以下是一些句子示例:

*“ Schreiben Sie ein Praktikanten-Vermittlungs-Programm” –字数:6

“杜马斯特·贾·雷赫特·哈本–阿伯·伊赫·塞赫·达斯·甘兹·安德斯。” –字数:11

“ Hallo Welt !!!!” –字数:2

“ ZweiWörter!!!!” –字数:2

“ Eins,Zwei oder Drei” –字数:4 *

句子不必以“。”结尾。

任何想法如何解决?

最佳答案

您在第一个break中(在case之后)忘记了isWord = false statement

关于java - 数词,java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4044358/

10-09 13:00