sessisn 于 2015.06.12 17:07 提问
- javaWEB这段程序有点小问题,请高手帮忙指正一下.谢谢
-
下面程序运行输出System.out.println(words);后报错.错误是:[Ljava.lang.String;@11b886b7,请问怎么解决?在线等
package com.db.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.db.action.ConnDB;
public class JquerySearch extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response. setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ String sql = "select * from info"; conn = ConnDB.getConn(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); StringBuffer sb=new StringBuffer(); while(rs.next()){ String[] www={'"'+rs.getString("Names")+'"'}; if(www!=null &&www.length>0){ for(String s:www){ sb.append(s+","); } } } if(sb.length()>0) sb.deleteCharAt(sb.length()-1); String []words={sb.toString()}; if(request.getParameter("SearchText") != null) { String key = request.getParameter("SearchText"); if(key.length() != 0){ String json="["; for(int i = 0; i < words.length; i++) { if(words[i].startsWith(key)){ json += "\""+ words[i] + "\"" + ","; } } json = json.substring(0,json.length()-1>0?json.length()-1:1); json += "]"; System.out.println("json:" + json); System.out.println(words); out.println(json); } } }catch(Exception e){ out.println(e); } } }
-
- francislpx 2015.06.12 17:39
- 已采纳
words是数组,而且只有一个元素,你看一下上面的定义
你把所有结果放在了一个字符串里,words定义的时候一次性放进去
for(int i = 0; i < words.length; i++) {
if(words[i].startsWith(key)){
json += "\""+ words[i] + "\"" + ",";
}
-
-
devmiao
2015.06.12 17:18
ConnDB.getConn()
怎么写的,数据库打开了么
-
- sessisn 2015.06.12 17:22
是的,数据库操作部分没问题,问题应该出在强转字符转换这了,不知道该怎么改。
-
- francislpx 2015.06.12 17:25
String []words={sb.toString()};’
System.out.println(words);
words是数组啊,怎么直接打印,words[0]
-
- sessisn 2015.06.12 17:30
我试试看,还有就是运行后System.out.println("json:" + json);输出为json:[],中间应该有内容才是我想要的结果,例如["123","在在在","人人人"]
-
- francislpx 2015.06.12 17:43
你上面www数组定义也有问题,
while(rs.next()){
//查出结果后,每循环一次,www就被重新赋值,而不是查出来的结果成为www的元素
String[] www={'"'+rs.getString("Names")+'"'};
if(www!=null &&www.length>0){
for(String s:www){
sb.append(s+",");
}
}
}
-
- francislpx 2015.06.12 17:46
if(www!=null &&www.length>0){
for(String s:www){
sb.append(s+",");
}
}
上面的判断不对,按照你原来的写法,还需要再加一个条件&& !www[0].trim() .equal("")
-
- sessisn 2015.06.12 18:07
敢问“c__username ”帮我改下代码,我是新手,对数组学习的不够深
-
- xby1993 2015.06.13 02:14
System.out.println(words);
哥们,你打印的是数组的内存地址,而不是数组内容、这不是错误,而是你的代码逻辑问题。
-
-
beacon_2011
2015.06.14 12:13
输出之后报错?报什么错?