字符串数组比较?报错!请高手指教!在线,jijiji

风清扬-3 2003-01-14 03:15:21
我从数据库中取出两个字符串结果集,分别存储在subans,yesans中,执行下代码报错!
可将.equals换成“==”不报错,可结果不正确!
int m=fen.length;
for(int k=0;k<m ;k=k+1){
if(yesans[k].equals(subans[k])) {
defen=defen+fen[k];
}

}
javax.servlet.ServletException
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:459)
at usdl.student._0002fusdl_0002fstudent_0002fTestResults_0002ejspTestResults_jsp_262._jspService(_0002fusdl_0002fstudent_0002fTestResults_0002ejspTestResults_jsp_262.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)

Root cause:
java.lang.NullPointerException
at usdl.student._0002fusdl_0002fstudent_0002fTestResults_0002ejspTestResults_jsp_262._jspService(_0002fusdl_0002fstudent_0002fTestResults_0002ejspTestResults_jsp_262.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)

...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
laizg 2003-01-14
  • 打赏
  • 举报
回复
subans,yesans的个数一样吗。他们的字符数相同才可以逐个来比较啊。.如果有一个6个,有一个7个,那么第7个比较那时侯就会有一个必然为空字符(null),你这样你知道那两个字符串的值得吗。.你直接这样.
subans="XXXXXX";
yesans="YYYYYY";
然后在比较一下拉。肯定是这两个的问题.
风清扬-3 2003-01-14
  • 打赏
  • 举报
回复
subans,yesans的元素我都看了,都有结果,不为空!和fen的个数保证一致!
laizg 2003-01-14
  • 打赏
  • 举报
回复
int m=fen.length;
for(int k=0;k<m ;k=k+1){
if(yesans[k].equals(subans[k])) {
defen=defen+fen[k];
}

}
你从这段代码入手,把那个yeasans[k]输出来看看有没有问题先啊。在把subans[k]也输出来看看有没有null先,这样才可以做到查出问题的结果啊。。排除法。
zxhong 2003-01-14
  • 打赏
  • 举报
回复
你能保证2个数组元素个数一样且>=m???????

如果不能,请换种方式比较!!!

eg:
for(int k=0;k<yesan.length();k<subans.length() ;k++){
if(yesans[k].equals(subans[k])) {
defen=defen+fen[k];
}
laizg 2003-01-14
  • 打赏
  • 举报
回复
haha ...==一般很少人用了。一般都用equals,但可能yesans[k]有为空的(null)所以你就出错了。。给分拉。。:)

81,091

社区成员

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

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