首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

求抱腿,字符串解析,该如何处理

2012-09-11 
求抱腿,字符串解析content COUNT(a billid\9160150\A/a,a billid\9160151\B/a,a billid

求抱腿,字符串解析

content = "COUNT(<a billid=\"9160150\">A</a>,<a billid=\"9160151\">B</a>,<a billid=\"9160152\">C</a>)" ;

如何解析上面的字符串,得到{"9160150","9160151","9160152"},有哪些方法可以使用呢?求思路,求代码
(我知道一个笨方法:用","拆分字符串,然后用String的indexof() 和lastindexof()这两个方法可以实现查找,但是感觉很笨,效率太低)。

[解决办法]
使用正则表达式是比较靠谱的思路,实例代码如下,能够找出所有的7位数字,如果要求更严格需要更改正则表达式

Java code
public static List<Integer> getStr(){        List<Integer> strList=new ArrayList<Integer>();        String content = "COUNT(<a billid=\"9160150\">A</a>,<a billid=\"9160151\">B</a>,<a billid=\"9160152\">C</a>)" ;        Pattern p=Pattern.compile("\\d{7}");        Matcher m=p.matcher(content);        while(m.find()){            String tmp=m.group();            System.out.println(""+tmp);            Integer i=Integer.parseInt(tmp);            strList.add(i);        }        return  strList;    }
[解决办法]
for example
Java code
List<String> list = new ArrayList<String>();String str = "COUNT(<a billid=\"9160150\">A</a>,<a billid=\"9160151\">B</a>,<a billid=\"9160152\">C</a>)" ;Matcher m=Pattern.compile("(?i)billid=\"(\\d+)\"").matcher(str);while(m.find()){    System.out.println(m.group(1));    list.add(m.group(1));}String[] arr = list.toArray(new String[0]); 

热点排行