数组溢出错误java.lang.IndexOutOfBoundsException,在线等

暖暖猫 2011-06-01 10:04:02


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)



下面是报错的,只是我不明白为什么会数组溢出
...全文
162 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖暖猫 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wangxx777 的回复:]

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.ap……
[/Quote]
······解决了,不是数据问题,是截取问题,matcher.group(a) 把a改成1,就可以了,因为我要界面用,所以用的out.print()
现在没问题了
wangxx777 2011-06-01
  • 打赏
  • 举报
回复
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数据有问题啊,我模拟了一下,程序没有问题啊!
暖暖猫 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wl_ldy 的回复:]

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

```我只要汉字,所以,截取的时候,把group(1)就可以用了,我很无语,o(︶︿︶)o 唉
暖暖猫 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 frankgoahead 的回复:]

当然会溢出了, s.append(lista.get(i)+"-");
最后一个字符串后面加上了“-”
[/Quote]
我自己解决了···,报的错,不是那个“-”,而是另一个,和这个无关的
你说的那里,是要把list专程StringBuffer ,然后在截取StringBuffer中的数据,得到我用的数据
wl_ldy 2011-06-01
  • 打赏
  • 举报
回复
那说明aString.length=2
group(0),group(1)存在group(2)不存在吧...
frankgoahead 2011-06-01
  • 打赏
  • 举报
回复
当然会溢出了, s.append(lista.get(i)+"-");
最后一个字符串后面加上了“-”
暖暖猫 2011-06-01
  • 打赏
  • 举报
回复
·····把group(a)改成group(1)就可以了,我很无奈,还是要看api,group这个函数都没用过

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧