当前位置: 代码迷 >> Java相关 >> 求抱腿,字符串解析,该如何处理
  详细解决方案

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

热度:6654   发布时间:2013-02-25 21:44:48.0
求抱腿,字符串解析

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