Word计数器程序在Java中

时间:2017-09-11 03:35:31

标签: java

通过从扫描仪收集用户输入在java中创建一个单词计数器时,我遇到了错误,即我的程序显示在最后一个单词后输入空格时输入了一个额外的单词在char。有没有办法检查空间的用户输入并在进入字数循环之前将其删除?

5 个答案:

答案 0 :(得分:5)

之后......

String userinput = wordcounter.nextLine();

...添加此行:

userinput = userinput.trim();

它应该解决问题,因为函数trim()摆脱了字符串开头或结尾的空格。

答案 1 :(得分:0)

尝试这样的事情:

public static void main(String[] args) {
    int word = 0;
    System.out.println("Enter a string: ");
    Scanner wordcounter = new Scanner(System.in);
    while (wordcounter.hasNext()) {
        wordcounter.next();
        word++;
    }
    System.out.println("You hav entered " + word + " words.");
}

答案 2 :(得分:0)

此外,Java中有许多函数可以在这里使用,比如使用字符串标记器等非常容易。但是如果你想在上面的程序中进行更改,你可以简单地在main之前做一个简单的检查语句。如果条件是,如果I == length-1,因为这意味着你在最后一个字符并且此后没有任何内容,对于这种情况你可以继续或中断。希望我解决了你的疑问,如果你需要更多澄清,请告诉我们......

答案 3 :(得分:0)

一种可能的方法:修剪输入后使用正则表达式。

String text = "I turned myself into a pickle Morty! :)";
String[] words = text.split("([\\W\\s]+)");
int count = 0;
for (String word: words) {
    count++;
}
System.out.println("You have entered " + count + " words!");

答案 4 :(得分:0)

    Scanner in = new Scanner (System.in);
    System.out.println("Write something");
    String x = in.nextLine();
    char y;
    char z;
    int n =1;
    boolean t = true;
    boolean f = false;
    boolean o = false;
    for (int i = 0; i<x.length();i++){
    y = x.charAt(i);
    if(t){
    if(' ' == y){n--;}
    else if(y != ' '){ t=false; f = true;}
    }
    if(' ' == y){n++;}
    if(o){
        z = x.charAt(i-1);
    if(' ' == y && ' '== z){n--;}
    }
    if (o){
    if(' ' == y && i == x.length()-1){n--;}
    }
    if(f){o = true;}

    }
    System.out.println(n);

这实际上有效lol