日期:2014-05-17  浏览次数:20721 次

java截取多个子串
我从网页中已经截得字符串如
<tr><td style="width:90px;">南大博仕</td><td title="蛇胆陈皮片" style="width:169px;">蛇胆陈皮片</td><td style="width:81px;">Z36021247</td><td style="width:119px;">36片</td><td style="width:57px;">3.6</td><td style="width:57px;">21</td><td title="江西南大博仕制药">江西南大博仕制药</td></tr>
现在想把其中的数据截取出来 ,因为要生成excel表格所以不能截出的字符串为一窜,现在的想法是先按行生成txt在由txt生成excel,我用过方法substring(index1, index2)没成功,因为后面有两个标签是相同的.请问我改怎么实现该功能

------解决方案--------------------
不知道LZ要截取什么数据,可以考虑用正则
for example
Java code
String s = "<tr><td style=\"width:90px;\">南大博仕</td><td title=\"蛇胆陈皮片\" style=\"width:169px;\">蛇胆陈皮片</td>";
Pattern p = Pattern.compile("(?i)<td\\s+.*?>(.*?)</td>");
Matcher m = p.matcher(s);
while(m.find()) {
    System.out.println(m.group(1));
}

------解决方案--------------------
把 
<tr><td style="width:90px;">南大博仕</td><td title="蛇胆陈皮片" style="width:169px;">蛇胆陈皮片</td><td style="width:81px;">Z36021247</td><td style="width:119px;">36片</td><td style="width:57px;">3.6</td><td style="width:57px;">21</td><td title="江西南大博仕制药">江西南大博仕制药</td></tr>
拼成一个String 变量str

String ss[] = str.split("</td>");
for(int i=0;i<ss.length;i++){
if(i<(ss.length-1)){
String result = ss[i].substring(ss[i].indexOf("">"),ss[i].length);//这里indexOf那里需要用正则,result就是td里的变量
}
}