从指定字符串开始截取到指定字符串,应该怎么写?有明白的快回啊~~~~
----------------------------

解决方案 »

  1.   

    s.substring( s.lastIndexOf(startStr)+startStr.length(), s.lastIndexOf(endStr))
      

  2.   

    现在有一段字符串~数据库条件~例如g.dah='1234567899' and c.lx='西医'。我想截取‘c.lx='西医'’它,在这个字符串条件中所有以c.开头的到下一个and结束的字符
      

  3.   

    可以用正则表达式匹配
    参考java.util.regex
      

  4.   

    String str = "g.dah='1234567899' and c.lx='西医'";str.substring( str.lastIndexOf("c"), str.lastIndexOf("and"))
      

  5.   

    这样写会提示:java.lang.StringIndexOutOfBoundsException:
      

  6.   

    如果有多个‘c’到‘and’可以都截取出来么?
      

  7.   

    还有没有可以截取多个‘c’到‘and’的之间字符的方法啊!!!!!!!!!!!!!!!!!!!!!!!!!
      

  8.   

    String str = "g.dah='1234567899' and c.lx='西医'";str.substring( str.lastIndexOf("and"),str.lastIndexOf("c"))
      

  9.   

    String str = "g.dah='1234567899' and c.lx='西医' and c.a='a' and c.b='b'";
            String[] strArray=str.split(" and ");
            Vector wannaStrings=new Vector();
            for(int i=0;i<strArray.length;i++){
                if(strArray[i].indexOf("c")==0){
                    wannaStrings.add(strArray[i]);
                }
            }
    在wannaStrings这个Vector中就是你想要的以“c.”开头的东西,如果需要你再自己把组字符串吧
      

  10.   

    String str = "g.dah='1234567899' and c.lx='西医' and c.a='a' and c.b='b'";
            String[] strArray=str.split(" and ");
            Vector wannaStrings=new Vector();
            for(int i=0;i<strArray.length;i++){
                if(strArray[i].indexOf("c")==0){
                    wannaStrings.add(strArray[i]);
                }
            }
    在wannaStrings这个Vector中就是你想要的以“c.”开头的东西,如果需要你再自己把组字符串吧
    ----------------------这个方法设计本身就有问题,如果我的
    String str = "g.dah='1234567899' and c.lx='西医' and c.a='a' and c.b='b'";
    改成
    String str = "g.dch='1234567899' and c.lx='西医' and c.a='a' and c.b='b' and bb.ca='sss'";怎么办?
    你按and分割,然后只判断是否存在c就放进去了,那样很容易出错.
    我试了下正则,因为条件太过于模糊,没有办法确认到很精确的数据,建议楼主把需求提出来,建议采用变通的实现方式
      

  11.   

    可以把 if(strArray[i].indexOf("c")==0)改成 if(strArray[i].indexOf("c.")==0)
    这样更严谨一些
      

  12.   

    正则表达式我不太会用~有没有比较好的例子呢?:)
    icefire1512(花花) 的方法我觉得比较符合我的想法~~~~
      

  13.   

    最简单的方法:
    String s = "g.dah='1234567899' and c.lx='西医' ";
    String s1 = s.substring(s.indexOf("c."));
    String target = null;
    if(s1.indexOf("' ") == -1){
    target = s1;
    }else {
    target = s1.substring(0,s1.indexOf("' ")+1);
    }
    应该可以了,没时间调了,你自己测一下。
      

  14.   

    to icefire1512(花花) 
    大哥,我是在判断是不是以“c.”开头,不是在判断是否存在“c”这个字符:)
    ------------------------------如果出现cxsads.dd= 'xxx'的话,你怎么办。也算?
    这种以字符判断的方法本身就是不合理的,麻烦严格一点对待开发好不好