2016-03-14 48 views
0

我試圖隨機洗牌從數據庫中檢索的輸入。到目前爲止,我可以將檢索到的值添加到列表中。因爲我想把它們洗牌,所以我試圖把這個詞分成單獨的字母。例如,像['l','i','s','t']一樣。但分割功能不起作用。 我哪裏錯了?分割函數不被識別

<%@page contentType="text/html" pageEncoding="UTF-8" %> 
<%@page import="java.sql.*"%> 
<%@page import="java.util.*"%> 
<%@page import="java.lang.*"%> 
<% 
String vlemail=request.getParameter("lemail"); 
try 
{ 
String str="jdbc:mysql://localhost:3306/user"; 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection con=null; 
con=DriverManager.getConnection(str,"root",""); 
Statement st=con.createStatement(); 
ResultSet rs =st.executeQuery("select pwd from utable where email='"+vlemail+"'"); 
ArrayList<String> list=new ArrayList(); 
while(rs.next()) 
{ 

list.add(rs.getString("pwd")); 
out.println(list); 
List splitlist=list.split("(?!^)"); 
Collections.shuffle(splitlist); 
out.println(splitlist); 
} 
out.println("Retrieved"); 
} 
catch(Exception e) 
{ 
out.println(e); 
out.println("Not retrieved"); 
} 
%> 

回答

0

爲什麼你使用list.split("(?!^)");? Split函數可以用來分割一個字符串,而你正試圖在ArrayList上使用它。

如果你想使用分割功能會更好。更好的辦法是將所有結果附加到單個字符串中,然後將其分開,然後根據您的要求將其添加到Arraylist中。然後,做洗牌。

+0

String r = rs.getString(「pwd」); out.println(r); String [] p = r.split(「」); out.println(p); Arrays.sort(p); out.println(p);我修改了一段時間的部分,但仍然沒有工作..它打印[Ljava.lang.String; @ 48a669d8 – pinky

+0

'p'是數組類型,你不能使用打印命令直接在陣列上,通過使用任何循環爲例如:for(int i = 0; i

+0

你得到了你需要的結果? –