List lista=districtService.getc(district_id);
StringBuffer s = new StringBuffer();
for(int i=0;i<lista.size();i++){
s.append(lista.get(i)+"-");
}
String[] aString=s.toString().split("-");
for(int a=0;a<aString.length;a++){
Pattern pattern = Pattern.compile("=(.+)\\}");
        Matcher matcher = pattern.matcher(aString[a]);
        System.out.println(aString[a]);
        while(matcher.find()) {
            out.print(matcher.group(a)+",");
        }
        }
上面是代码片段No group 2
at java.util.regex.Matcher.group(Unknown Source)
at com.gpcsoft.srplatform.auth.controller.ExerciseController.eUserAjaxa(ExerciseController.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:788)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)下面是报错的,只是我不明白为什么会数组溢出

解决方案 »

  1.   

    ·····把group(a)改成group(1)就可以了,我很无奈,还是要看api,group这个函数都没用过
      

  2.   

    当然会溢出了, s.append(lista.get(i)+"-");
    最后一个字符串后面加上了“-”
      

  3.   

    那说明aString.length=2
    group(0),group(1)存在group(2)不存在吧...
      

  4.   

    我自己解决了···,报的错,不是那个“-”,而是另一个,和这个无关的
    你说的那里,是要把list专程StringBuffer  ,然后在截取StringBuffer中的数据,得到我用的数据
      

  5.   


    ```我只要汉字,所以,截取的时候,把group(1)就可以用了,我很无语,o(︶︿︶)o 唉
      

  6.   

    List<String> lista = new ArrayList<String>();
    lista.add("a");
    lista.add("b");
    lista.add("c");
    lista.add("d");
    StringBuffer s = new StringBuffer();
    for (int i = 0; i < lista.size(); i++) {
    s.append(lista.get(i) + "-");
    System.out.println(s.toString());
    }
    String[] aString = s.toString().split("-");
    for (int a = 0; a < aString.length; a++) {
    Pattern pattern = Pattern.compile("=(.+)\\}");
    Matcher matcher = pattern.matcher(aString[a]);
    System.out.println(aString[a]);
    while (matcher.find()) {
    System.out.println(matcher.group(a) + ",");
    }
    }
    会不会是你的list数据有问题啊,我模拟了一下,程序没有问题啊!
      

  7.   

    ······解决了,不是数据问题,是截取问题,matcher.group(a)  把a改成1,就可以了,因为我要界面用,所以用的out.print()
    现在没问题了