黑马程序员技术交流社区

标题: .使用字符串处理方法对一段英文文字中的单词计数。 [打印本页]

作者: qinjingbo    时间: 2014-10-24 22:10
标题: .使用字符串处理方法对一段英文文字中的单词计数。
本人菜鸟一枚,求大神解答。

作者: maralbertlee    时间: 2014-10-24 22:10
获取空格数出现的次数+1,当然我指的是标点符号后也有空格。
如果不这么做的话也可以,不过就是麻烦了点,就是也要判断获取各种标点符号在文章中出现的次数。然后在前面获得的(空格数+标点符号出现的次数)总和。注意,不要获取单双引号。
具体实现思路就是:
1.定义个计数器
2.获取kk第一次出现的位置
3.从第一次出现低位之后剩余的字符串中继续获取kk出现的位置。
    每获取一次就计数一次
4.当获取不到时,计数完成
代码还是希望LZ能够自己实现,我相信你能行的!加油!
作者: 冰点    时间: 2014-10-25 13:57
  1. public class Test1 {
  2.         public static void main(String[] args){
  3.                 int a=test(" go to  schoo ! ");
  4.                 System.out.println(a);
  5.         }
  6.        
  7.         public static int test(String str){
  8.                 String[] words=str.split(" ");        //以空格拆分字符串
  9.                 int count=0;                                        //单词个数
  10.                 for(String word:words){
  11.                                                                                 //如果长度大于0,并且是字母,则单词数加1
  12.                         if(!word.equals(" ") && word.length()>0 && word.matches("[a-zA-Z]*")){
  13.                                 count++;
  14.                         }
  15.                 }
  16.                 return count;
  17.                
  18.         }
复制代码

作者: void    时间: 2014-10-26 09:38

  1. public class Demo6 {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 String str="abcdefgh";
  5.                 String temp = str.concat("a");//concat(String str) 将指定字符串联到此字符串的结尾。
  6.                 System.out.println(temp);
  7.                 int length = temp.lastIndexOf("a");//lastIndexOf(int ch) 返回最后一次出现的指定字符在此字符串中的索引
  8.                 System.out.println(length);//最后一个的下标就是原数组的长度
  9.                
  10.         }

  11. }
复制代码

作者: void    时间: 2014-10-26 10:06
  1. public class Demo6 {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 int num = 0;
  5.                 String str = "We are the world! We are the children.";
  6.                 String temp = str.replaceAll(" ", "  ");

  7.                 num = temp.length() - str.length() + 1;
  8.                 System.out.println(num);
  9.         }

  10. }
复制代码

作者: Rain2692    时间: 2014-10-30 00:57
自己思考一下吧。。。。
作者: 游泳的猫    时间: 2014-10-31 22:23
import java.util.regex.*;

class CountWords{
       
        public static void main(String[] args){
                String str="This is a dog";
                String regex="\\b\\w+\\b";
                System.out.println(count(regex,str));
               
        }

                public static int count(String regex,String str){
                        int sum=0;
                        Pattern p=Pattern.compile(regex);
                        Matcher m=p.matcher(str);
                        while(m.find()){
                                sum++;
                        }
                        return sum;
                }
}


作者: 吕静然    时间: 2014-11-13 13:18
直接用String 里面的split方法分割,返回一个String数组,统计数组长度。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2