String str = "其它:111,开始时间:200810,结束时间:200811,其它:adg";我想得到 200810和200811

解决方案 »

  1.   

    String startStr = "开始时间:";
    String endStr = ",结束时间:";
    String otherStr = ",其他";int startIndex = str.indexOf(startStr);
    int endIndex = str.indexOf(endStr);
    int otherStr = str.indexOf(otherStr);String start = str.substring(startIndex + startStr.length, endIndex);
    String end = str.substring(endIndex + endStr.length, otherIndex);
      

  2.   

    有点漏洞,改为:
    int startIndex = str.indexOf(startStr); 
    int endIndex = str.indexOf(endStr, startIndex); 
    int otherStr = str.indexOf(otherStr, endIndex); 
      

  3.   

    这个最好用正则表达式
    http://www.javaeye.com/problems/6804
      

  4.   


    public static void main(String[] args) {
    String str = "其它:111,开始时间:200810,结束时间:200811,其它:adg";
    Pattern pattern = Pattern.compile("开始时间:(\\d+),结束时间:(\\d+),",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = pattern.matcher(str);
    while(m.find()) {
    if (m.group(1) != null && m.group(2) != null) {
    System.out.println(m.group(1) + "###" + m.group(2));
    }
    }
    }