我创建了一个Web应用程序,用户在JSP表中输入数据,然后在用户点击Save时将数据存储在数据库中。
在这个应用程序中,我将所有列数据汇总到一行并存储在数组中,该数组被发布到INSERT页面以将数据插入到DataBase中。在那里,我使用","(逗号)分割数组中的所有元素
我在这里遇到的问题是,当用户在一个单独的列中输入带逗号的字符串时,在分割此数组的主题时间,数组大小增加到实际大小并获得ArrayIndexOutOfBoundsException
。
答案 0 :(得分:0)
如果我理解正确如:
Collections.addAll(arrayList, input.split(","));
就像一个简单的例子:
String returnedItems = "a,b,c";
List<String> sellItems = Arrays.asList(returnedItems.split(","));
现在遍历列表并将每个项目附加到StringBuilder:
StringBuilder sb = new StringBuilder();
for(String item: sellItems){
if(sb.length() > 0){
sb.append(',');
}
sb.append(item);
}
String result = sb.toString();
<强> http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String%29 强>
<强> http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList%28T...%29 强>
答案 1 :(得分:0)
对用户输入的每个值添加分隔符,如$或;要么 : 然后将此值添加到数组中: value1 $ value2 $ something $ value 3 $
public static void main(String[] args) {
ArrayList<String> bla = new ArrayList<String>();
bla.add("1$");
bla.add("2,3$");//2,3 is an one value
bla.add("4$");
ArrayList<String> newOne = new ArrayList<String>();
for (int i = 0; i < bla.size(); i++) {
String[] array = bla.get(i).split("$");
newOne.addAll(new ArrayList<String>(Arrays.asList(array)));
String fixed = newOne.get(i).substring(0, newOne.get(i).length()-1);
newOne.set(i, fixed);
}
System.out.println(newOne);
System.out.println(newOne.size());
}