A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于星星 中级黑马   /  2012-7-27 22:16  /  1449 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面是一个统计单词出现次数的例子,用到了字符串切割。但这里面为什么这样切割,小弟有点不懂,求解答。
package test;
import java.util.*;
import java.util.Map.*;
public class Test {
    public static void main(String[] args){
        String text = "Having a good day. Have a good class." +
            "Having a good visit. Have fun!";

        Map<String,Integer> treeMap = new TreeMap<String,Integer>();

        String[] words = text.split("[ .!?]"); //这是什么意思?        
       for(int i=0;i<words.length;++i){
            if(words.length()>1){
                if(treeMap.get(words) != null){
                    int value = treeMap.get(words).intValue();
                    value ++;
                    treeMap.put(words,value);
                }else{
                    treeMap.put(words,1);
                }
            }
        }
        System.out.println("Display words and their count in"+" ascending order of the words1");
        System.out.println(treeMap);
    }
}

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
String[] words = text.split("[ .!?]");
把字符串text以[.!?]作为标记进行切割!
好像试着个意思吧!!!!
回复 使用道具 举报
本帖最后由 fiend 于 2012-7-27 23:39 编辑

String[] words = text.split("[ .!?]");就是以空格、点、感叹号、问号作为分割符号。
比如:
  1. public class Test {
  2. public static void main(String[] args){
  3. String text = "hello world!I.love you.very much";
  4. String[] words = text.split("[ .!?]");
  5. for (String word : words) {
  6. System.out.println(word);
  7. }
  8. }
  9. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  String[] words = text.split("[ .!?]");
把字符串text以[.!?]作为分割符进行切割
回复 使用道具 举报
fiend 发表于 2012-7-27 23:36
String[] words = text.split("[ .!?]");就是以空格、点、感叹号、问号作为分割符号。
比如: ...

分隔符还能是多个的呀?而且是或的关系,我以前只见过以一个字符或字符串分隔的。还以为“.?!”是个什么正则表达式呢,呵呵,多谢
回复 使用道具 举报
于星星 发表于 2012-7-28 00:30
分隔符还能是多个的呀?而且是或的关系,我以前只见过以一个字符或字符串分隔的。还以为“.?!”是个什么 ...

[.!?]
这个其实就是一个正则表达式,这个正则表达式匹配一个字符,这个字符可以是:点 或 感叹号 或 问号。
回复 使用道具 举报
楼主一下就蒙了,知识没有灵活哦,这个不是正则表达式吗?[abc]:代表a、b或、c啊 [.!?]代表点、感叹号或问号啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马