一个格式如下的文件:
汶川地震,10290, 哄抢救灾物资,9240, 封杀莎朗斯通,3300, 印尼排华是怎么回事,2310, 莎朗斯通,2220, 图片,2130, 朝鲜能不能打败韩国,1800, 图,1590, 杨丞琳辱华惨痛下场,1440, 印尼残害女华人,1440我现在想分别提取里边的字符串和数字,要怎么写呢。我的想法是写一个类Word,属性为 String word   String number
然后构造一个ArrayList<Word>容器,把示例放到容器里面。
...........................................................................
但是我现在不知道要怎么样子分别才能提取word,和number,然后再创建一个Word示例,感觉我说的有点乱,不知道各位能理解不??

解决方案 »

  1.   

    如果你数据不多,最简单的方式String strTemp = "汶川地震,10290, 哄抢救灾物资,9240, 封杀莎朗斯通,3300, 印尼排华是怎么回事,2310, 莎朗斯通,2220, 图片,2130, 朝鲜能不能打败韩国,1800, 图,1590, 杨丞琳辱华惨痛下场,1440, 印尼残害女华人,1440";
    String[] strTemps = strTemp.split(",");
    Map<String,String> words = new HashMap<String,String>();
    if(strTemps != null && strTemps.length > 0){
    for(int i = 0; i < strTemps.length; i++){
    if(i % 2 == 0){
    words.put(strTemps[i], strTemps[i+1]);
    }
    }
    }
      

  2.   

    for example
    import java.util.regex.*;public static void main(String[] args) throws Throwable {
        class Word {
            String name;
            String number;
            public Word(String name, String number) {
                this.name = name;
                this.number = number;
            }        public String toString() {
                return String.format("name=%s, number=%s", name, number);
            }
        };
        List<Word> list = new ArrayList<Word>(); 
     
        String str = "汶川地震,10290, 哄抢救灾物资,9240, 封杀莎朗斯通,3300, 印尼排华是怎么回事,2310, 莎朗斯通,2220, 图片,2130, 朝鲜能不能打败韩国,1800, 图,1590, 杨丞琳辱华惨痛下场,1440, 印尼残害女华人,1440";
        Pattern p = Pattern.compile("(\\D+?)[,](\\d+?)([,]\\s+|$)");
        Matcher m = p.matcher(str);
        while (m.find()) {
            list.add(new Word(m.group(1), m.group(2)));
        }    for (Word w : list) {
            System.out.println(w);
        }
    }
      

  3.   

    public static void main(String[] args) {
    try {
    FileReader file = new FileReader("F:/company/abc.txt");
    BufferedReader bufferedReader = new BufferedReader(file);
    Map<String, String> numValues = new HashMap<String, String>();
    String value = "";
    while (bufferedReader.read() != -1) {
    String s = bufferedReader.readLine();
    String[] values = s.split(",");
    for (String str : values) {
    if (str
    .matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"))
    numValues.put(str, value);
    else
    value = str;
    }
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }