例如  用java怎么统计 这个字符串的字数 “海外引越し、Copyright Art Corporation”

解决方案 »

  1.   

    不就是它的长度吗?
    .length()这个不行吗?
      

  2.   

    哦 看来是要先转成char[]再取长度
      

  3.   

    直接用Length()这个方法来获取它的长度就可以了!
      

  4.   

    确实,用.length()的方法就可以了
      

  5.   

    length()就可以获得了,难道有什么特殊要求???
      

  6.   

    以前看过一个相似的功能:
        页面显示新闻标题列表,如长度超过多少后面就以省略号替代这种须以str.getBytes().length来判断
      

  7.   

    先掉去空格 String.trml
    然后再计算字符的长度  String.length
      

  8.   

    唉,我是想问 里面包含了多少个字数啊,就像word里面的统计字数一样
     比如“ 个人字间、Copyright Art Corporation”里面有4个汉字, 3 个单词,所以字数统计起来是7个。哪能用length().这个函数啊
      

  9.   

    String s="海外引越し、Copyright Art Corporation";
    System.out.println(s.length());\\包括空格
    System.out.println(s.length().trim());\\不包括空格
      

  10.   

    我晕了,都说不能用lenght(),这个函数了,得出的结果是31,而实际上不是这样的,还有s.length().trim(),这个只能去掉前后的空格,不是去掉中间的空格,唉,我真的有点生气,又想在这里说“不懂的人,就别乱说”,又怕没人回答,但有人回答了,却也不看看我问的是什么,如果我问题问的不够清楚,我在回贴中也有解释啊,都说不是用length()这个函数了,唉,就没有别的吗,回贴的人只知道用length()吗
      

  11.   

    用BreakIterator
    getCharacterInstance 把后面的英文拆开
    getWordInstance 会把前面的4个汉字一起处理
      

  12.   

    但是拆开,不是好办法啊,如果是海外引越し、Copyright Art Corporation 海外引越し、Copyright Art Corporation 海外引越し、Copyright Art Corporation 海外引越し、Copyright 海外引越  Art Corporation 怎么拆。没有什么思想,可以按顺序处理的吗
      

  13.   


    public static void main(String[] args) throws Exception{
           String str = "海外引越し、Copyright Art Corporation";
            if(str == null) throw new Exception("");
            char[] c = str.toCharArray();
            int words = 0;
            boolean wordflag = false;
            for(int i=0;i<c.length;i++){
                if((c[i]>='a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z')){
                    if(wordflag) {
                        continue;
                    }
                    wordflag = true;
                }else{
                    wordflag = false;
                    if((c[i] != ' ') || 
                     (((c[i]>='z') || (c[i] <= 'A')) && 
                     (c[i])<90 || c[i]>96))
                        words++;
                }
            }
            System.out.println("words= " + words);
        }
    如果要处理连续空格,方法自己想去,别太懒了。
    想要牛逼的方法,我不会~~~
      

  14.   

    上面这位大哥,你的方法,只能处理单词啊,那些文字怎么检查我给你们看个例子吧,如果有办法做到那样最好
    http://jlp.yahooapis.jp/MAService/V1/parse?appid=CWPH3uGxg64nK4oPp3OhigfrFCfNtNtNg4dtax7_OTvgflVc03RW4ODuxjCoY6KQ6g--&results=ma,uniq&filter=1|2|3|4|5|6|7|8|9|10|12&sentence=海外引越し、Copyright Art Corporation你们看一下这个链接,就知道了
      

  15.   

    你跑这段代码了么?
    “海外引越し、Copyright Art Corporation”返回8 不对吗?
    像你在14楼的那个字符串,用这个方法跑返回的就是7呀,不对吗?你那个连接我打不开
      

  16.   

    但像这样的话 : "海,Copyright Art Corporation,海外"返回的是7而不是6啊,然后你在海和,之前加几个空格,也是返回的结果不一样啊
      

  17.   

    int 字数 = 0;
    str.charAt(i);
    用正则匹配 是中文加1;英文之后是空格 加1;
    是英文返回一个boolean值
    是空格返回一个boolean值
    如果两个都是True
    并且是连续的输出i;
    思路可否??
      

  18.   

    有点小问题 改正一下
    int 字数 = 0;
    str.charAt(i);
    用正则匹配 是中文加1;英文之后不是英文 加1;
    (是英文返回一个boolean值
    不是英文返回一个boolean值
    如果两个boolean不一致
    并且是连续的)输出i;
    思路可否??
      

  19.   


    public class Test
    {        
    public static void main(String[] args)
        {        
    char ch;   //每一个单独的char
    //原始文本
    String str = "海外引越し、Copyright Art Corporation";
    //单词的临时变量
    boolean wordBegin=false;
    //汉字个数
    int numChi=0;
    //单词个数
    int numEng=0;
    //其他符号
    int numCha=0;
          for(int i=0;i<str.length();i++)
          {  
          ch=str.charAt(i);
          if(Character.isSpaceChar(ch))    //空白符
          {
          if(wordBegin)
          {
          numEng++;       //单词
          wordBegin=false;
          }
          continue;   
          }
          else if(ch>=19968&&ch<=64041)
          {
          numChi++;  //汉字
          continue;
          }
          else if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))
          {
          wordBegin=true;
          }
          else
          {
          numCha++;    //其他符号
          }
        }
          if(wordBegin)
          {
          numEng++;
          }
         
          System.out.println("汉字个数:"+numChi);
          System.out.println("单词个数:"+numEng);
          System.out.println("其他符号:"+numCha);
        }
    }汉字个数:4
    单词个数:3
    其他符号:2
      

  20.   

    按照上面的思路只要你加一个vector就可以统计文本中所有不重复的汉字和单词个数,以及他们出现的频率,
    一个几万字的小说你试一下的话发现只有几千汉字,每个字出现的频率也相差很大,不要认为这些功能复杂,顶天了500行之内全搞定
      

  21.   


    import java.util.regex.*;public class WordCount {
    public static final String PATTERN_STR = "[\\u4E00-\\u9FFF]|(\\b\\w+\\b)";

    public static void main(String[] args) {
    if (args.length > 0) {
    Pattern p = Pattern.compile(PATTERN_STR);
    Matcher m = p.matcher(args[0]);
    int i = 0;
    for (; m.find(); i ++)
    System.out.println(m.toMatchResult());
    System.out.println(i);
    }
    }
    }