java计算字符串

时间:2017-12-17 13:46:05

标签: java string count words

我正在编写代码来查找字符串中的单词数,代码如下:

package exercises;

import java.util.Scanner;

public class count {

    public static int countwords(String str){
        int count=0;
        String space="";
        String[] words=str.split(space);
        for(String word:words){
            if(word.trim().length()>0){
                count++;
            }

        }
        return count;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Enter the string");
        Scanner input=new Scanner(System.in);
    String s=input.nextLine();
    System.out.println(countwords(s));

    }

}

为了做练习,我再次将此代码编写为

package exercises;

import java.util.Scanner;

public class count {

    public static int countwords(String str){
        int count=0;
        String space="";
        String[] words=str.split(space);
        for(String word:words){
            if(word.trim().length()>0){
                count++;
            }

        }
        return count;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Enter the string");
        Scanner input=new Scanner(System.in);
    String s=input.nextLine();
    System.out.println(countwords(s));

    }

}

我只是想知道为什么这段代码的输出代码不同?虽然我逐行检查了代码,但我找不到这两个代码输出不同的原因?任何人都可以请帮助

3 个答案:

答案 0 :(得分:2)

由于您的分割字符串为"",因此每个字母都会被提取为一个单词。

只需将String space="";更改为String space=" ";String space="\\s+";,您就可以了!

正则表达式工具\\s+表示在一次或多次出现空格后应拆分字符串。

答案 1 :(得分:0)

     String space="\\s+"; 

错了。这是一个空字符串,使用错误。

你最好使用

    String space=" ";

{{1}}

正则表达式“\\ s +”是“一个或多个空白符号”

答案 2 :(得分:0)

另一种选择可能是这样的:

            for (var l = 0; l <= word.length ; l++) {

                innerDiv = document.createElement('div');
                innerDiv.id = 'Block' + l;
                innerDiv.className = 'Block';
                innerDiv.innerHTML = word.charAt(l);
            }

            iDiv.appendChild(innerDiv);

            document.getElementsByTagName('body')[0].appendChild(iDiv);
        }