当前位置: 代码迷 >> J2SE >> java字符串处理有关问题
  详细解决方案

java字符串处理有关问题

热度:47   发布时间:2016-04-24 01:04:09.0
java字符串处理问题
一个格式如下的文件:
汶川地震,10290, 哄抢救灾物资,9240, 封杀莎朗斯通,3300, 印尼排华是怎么回事,2310, 莎朗斯通,2220, 图片,2130, 朝鲜能不能打败韩国,1800, 图,1590, 杨丞琳辱华惨痛下场,1440, 印尼残害女华人,1440

我现在想分别提取里边的字符串和数字,要怎么写呢。

我的想法是写一个类Word,属性为 String word String number
然后构造一个ArrayList<Word>容器,把示例放到容器里面。
...........................................................................
但是我现在不知道要怎么样子分别才能提取word,和number,然后再创建一个Word示例,感觉我说的有点乱,不知道各位能理解不??


------解决方案--------------------
如果你数据不多,最简单的方式
Java code
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]);                }            }        }
------解决方案--------------------
for example

Java code
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);    }}
  相关解决方案