有多行字符串:
04812010101你好}yqxy{yxyyxyeyyeyy32分28秒
04812010101你好}yqxy{yxyy1分58秒
04812010101你好}yqxy{yxyyx{y{eyyyeyyeyyeyyeyy1分58秒
04812010101你好}yqxy{yxyyxyeyyeyy2分0秒
06129010101你好yyyyyyeyeyy2分38秒
06129010102你好yx{ypyxyyxy{yyyyyeyy1分19秒
....前面数字部分固定为11位,中间两个汉字“你好”,然后一串字符(注:可能有特殊字符),最后一个是时间
我想把每行都分成四部分,如第一行分成
①04512010101
②你好
③yqxy{yxyyxyeyyeyy
④32分28秒
有什么好的方法,求完成程序

解决方案 »

  1.   

    用正则来匹配吧。表达式大概是:
    String pattern = "(\\d{11})(你好)(.*)(\\d{1,2}分\\d{1,2}秒)";匹配后,用 group(n) 来得到各匹配区间(小括号)
    1:04512010101
    2:你好
    3:yqxy{yxyyxyeyyeyy
    4:32分28秒
      

  2.   


    我用str.split(pattern)后不起作用,另外,group(n)是什么方法?
      

  3.   

    不是 split  你没用过Matcher?大致是:
    Pattern pat = Pattern.compile(pattern);
    Matcher mac = pat.matcher(你的字符串);
    while (mac.find()) {
      System.out.println(mac.group(1));
      System.out.println(mac.group(2));
    }