判断单词个数题:输入一行字符,统计共有几个单词(即kkk kkk算两个单词)
单词间就一个空格且开头没空格的话
String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
   System.out.println(result[x]);
System.out.println(result.length);
就可判断。
我想问的是
如果连续几个空格呢?
如果开头就有空格呢?
又应该如何处理?

解决方案 »

  1.   

    建议用java自身的库文件里的数组类,这样的类很多:有array类,stringbuf类(好像文件名写错了,好久没碰了)等等。他们对于你的问题提供了非常好地解决途径。好好看看吧
      

  2.   

    http://community.csdn.net/Expert/topic/5232/5232012.xml?temp=.9141962
    [超级大笨狼]提供三万单词库备份下载,MS-SQL 2000格式,下载请“自觉”捐赠可用分给我。
      

  3.   

    StringTokenizer tokenizer = new StringTokenizer("this is a test"," ")
    如果空格不规则,则在while中加个判断
      

  4.   

    String str=" aaa ad   ddd      d";
       String s[]=str.trim() .split("[ ,\\,,\\.]+");
       for(int i=0;i<s.length;i++){
         System.out.println(i+":"+s[i]);
       }用正则表达式来split,之前trim一下就可以了。
    正则表达式里面连接符的写法我就不查了,你自己查吧不过建议不要用split,这样出来的是数组,如果文件太大,对内存压力大。直接用indexOf一个一个的找就可以了。你搜索一下正则表达式,里面有单词的表示方法。
      

  5.   

    该成String[] result = "this is a test".split("\\s+");不就行了。
    至于开头空格嘛 就更简单了先判断下先!
    String result="    this    is   a   test";      
        for(int i=0;i<result.length();i++){
               if(result.charAt(i)!=' '){
                   result=result.substring(i);
                   break;
               }
        }
        String[] result1 = result.split("\\s+");
        for (int x=0; x<result1.length; x++)
            System.out.println(result1[x]);
        System.out.println(result1.length);

        }
      

  6.   

    下面,管你几行都可以。public class CountWord {    private static String article = " \n\t In fact, to a woman, just\tthe THOUGHT of rating\n"
                + "someone on a \"scale\" based on the way they look\nmakes them LAUGH.";    private static String SPLIT = "[||]";    /**
         * @param args
         */
        public static void main(String[] args) {
            String replaced = article.trim().replaceAll("\\s+", SPLIT);
            int position = 0, counter = 0;
            while (replaced.indexOf(SPLIT, position) != -1) {
                counter++;
                position = replaced.indexOf(SPLIT, position) + SPLIT.length();
            }
            System.out.println("一共有单词 " + (counter + 1) + " 个");
        }}
      

  7.   

    我楼上这个str.trim() 方法我怎么刚才没想到,真晕  惭愧啊!
    估计起太晚睡糊涂了我 55555~~~~
      

  8.   

    我楼上这句System.out.println("一共有单词 " + (counter + 1) + " 个");有点问题
    如果字符串是private static String article = "";
    则输出是一个单词 ,你还得修改下