本人想对任意给定的字符串,按照指定的首尾,从而截取中间部分,如:String s="<table><tr><td>你好:请帮忙</td></tr></table>";指定 首:<td>你好: 尾:</td> 
想等到结果: "请帮忙"又例如:
String s="<table><tr><td>你好:请帮忙</td><td>你们好:谢谢</td></tr></table>";
指定 首:<td>你们好: 尾:</td> 
想等到结果: "谢谢"
请问怎样实现?是使用substring吗?是用正则法则吗?如何实现?

解决方案 »

  1.   

    用substring自己写个函数不是很好吗?
      

  2.   

    String str = ....;
    String str1 = "<td>你好:";
    String str2 = "</td>";int startIndex = str1.indexOf(str1) + str1.length();
    int endIndex = str2.indexOf(str2);
    String s = str.substring(str1, str2);
      

  3.   

    用substring自己写个函数不是很好吗?
      

  4.   

    str.substring((str.indexOf(首)+首.length()),str.lastIndexOf(尾));
      

  5.   

    String s="<table><tr><td>你好:请帮忙</td><td>你们好:谢谢</td></tr></table>";
        Pattern p = Pattern.compile("\\<td\\>你们好:(.*)\\<\\/td\\>");
     
        Matcher m = p.matcher(s);    boolean rs=m.find();
        for (int i = 1; i <= m.groupCount(); i++) {
          System.out.println(m.group(i));
        }
      

  6.   

    public class StrFilter {
    public static String filtrate(String str, String start, String end){
    StringBuffer buffer = new StringBuffer();
    int i = 0, leg = 0;
    boolean isStart = false;
    while(i != -1){
    if (isStart){
    isStart = false;
    i = str.indexOf(end);
    if(i == -1){
    leg = str.length();
    }
    else{
    leg = i;
    }
    buffer.append(str.substring(start.length(), leg).toCharArray());
    }
    else {
    i = str.indexOf(start);
    if(i > -1){
    isStart = true;
    }
    str = str.substring(i + 1);
    }
    }
    return buffer.toString();
    }
    public static void main(String[] args){
    System.out.println(filtrate("<table><tr><td>Hello: Good!</td><td>How are you: Fine!</td></tr></table>", "<td>How are you:", "</td>"));
    }
    }