一个不固定长度的字符串:    "string1今天string2明天string3"
string1,string2,string3长度不固定,现在要取出子串:  "今天string2明天" 请高手帮,用java

解决方案 »

  1.   

    补充,因为 "今天,明天"是中文,所以用indexof 没用
      

  2.   

    正则
    "string1今天string2明天string3今天string4明天string5" 
    regex: "今天.*明天"   "今天string2明天string3今天string4明天"
    regex: "今天.*?明天"  "今天string2明天" & "今天string4明天"
      

  3.   

    java 怎么用正则啊? 帮帮忙,急!!!!!!!!
      

  4.   


    public class StringTest
    {
    public static void main(String[] args)
    {
    String string1 = "aaaa";
    String string2="bbbb";
    String string3 = "cccc";
    String str = string1 + "今天" + string2 + "明天" + string3;

    int begin = str.indexOf("今天");
    int end = str.indexOf("明天") + "明天".length();

    String expectStr = str.substring(begin, end);
    System.out.println(expectStr);
    }
    }
    看是否符合lz的要求。
      

  5.   

    会不会出现 "string1今天string2明天string3大后天string4”这样的情况,不会的话,用天分割一下试试,,
      

  6.   

    string1今天string2明天string3:
    先split(string1)得到今天string2明天string3然后split(string3)得到今天string2明天
      

  7.   

    String s = "string1今天string2明天string3";
    String string1 = s.substring(0, s.indexOf("今"));
    String string3 = s.substring(s.lastIndexOf("天")+1, s.length()); s = s.split(string1)[1];
    s = s.split(string3)[0];
    System.out.println(s);
      

  8.   


    public class StringTest
    {
        public static void main(String[] args)
        {
            String string1 = "aaaa";
            String string2="bbbb";
            String string3 = "cccc";
            String str = string1 + "今天" + string2 + "明天" + string3;
            
            int begin = str.indexOf(string1)+string1.length();
            int end = str.indexOf(string3);
            
            String expectStr = str.substring(begin, end);
            System.out.println(expectStr);
        }
    }
      

  9.   

    正则表达式import java.util.regex.*;public class Test { public static void main(String[] args){
        String str = "string1今天string2明天string3今天string4明天string5";
        Pattern ptn = Pattern.compile("今天.*?明天");
        Matcher mcr = ptn.matcher(str);     while (mcr.find())  //用find()找看看是不是有符合表达试的,如果有就用group()方法输出满足条件的内容
        {
          System.out.println(mcr.group());
        }
    }
    }
      

  10.   

    方法有很多,不一定要用正则:
    public static void main(String[] args) { String s = "string1今天string2明天string3"; int startIndex=s.indexOf("今天");
    int endIndex=s.lastIndexOf("明天")+2;
    s=s.substring(startIndex, endIndex);
    System.out.println(s); }