我必须从数据库中检索值并将其添加到arraylist中。这是我的代码..
ArrayList country = new ArrayList();
strQuery = "Select * from country";
rs = conexiondb.Consulta(strQuery);
while (rs.next()) {
String toc = rs.getString("country");
country.add(toc);
}
out.print(country);
System.out.println(country);
out.close();
我已将从数据库中检索到的所有值添加到country ..这里是该国家/地区的值..
[亚太地区,北美,南美,欧洲]
现在根据我的需要,我必须在每个逗号值后删除空格并使其像这样..
[亚太地区,北美,南美,欧洲]
请各位帮我解决这个问题..
提前致谢。
答案 0 :(得分:1)
您依赖ArrayList.toString().
提供的默认格式。不要这样做。编写自己的格式代码。
答案 1 :(得分:1)
这些空间根本不是来自数据库,它们只是ArrayList.toString()
(实际上所有继承自AbstractCollection
的JDK Collection类)的方式的函数。列表。
您可以通过查看此类的the documentation或注意到在初始[。
之前没有空格来判断是这种情况。我建议Guava Joiner完全控制您的输出。
Joiner.on(',').join(country);
将提供您想要的String
。
答案 2 :(得分:0)
您看到的是ArrayList
格式化内容的方式,而不是您的查询结果,尝试类似...
for (String name : country) {
System.out.println("[" + name + "]");
}
要检查。如果输出中仍有空格,那么当您从数据库中提取值并将其放入String#trim
List
如果您需要格式化String
,则需要提供自己的机制,例如......
List<String> values = new ArrayList<>();
values.add("APAC");
values.add("North America");
values.add("South America");
values.add("Europe");
System.out.println(values);
StringBuilder sb = new StringBuilder(128);
for (String value : values) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(value);
}
sb.insert(0, "[");
sb.append("]");
System.out.println(sb);
哪些输出......
[APAC, North America, South America, Europe]
[APAC,North America,South America,Europe]
答案 3 :(得分:0)
ArrayList toString
方法在每个逗号后使用空格打印集合。如果你想打印没有空格的列表,那么你需要编写一个新方法来做到这一点。
答案 4 :(得分:0)
如果记忆不是问题。将其存储在单独的StringBuilder
中这应该不是一个难题。这只是一点点的问题。
如果您想要逗号分隔值以便在arraylist中存储空间将为您提供。
如果你需要结果以方括号开头和结尾,内部值以逗号分隔,字符串之间没有任何空格。
ArrayList <String> country = new ArrayList<String>();
ArrayList country = new ArrayList();
strQuery = "Select * from country";
rs = conexiondb.Consulta(strQuery);
StringBuilder commaSeparated = new StringBuilder("[");
while (rs.next()) {
String toc = (rs.getString("country")).trim();
commaSeparated.append(toc).append(",");
country.add(toc);
}
commaSeparated.append("]");
out.print(country);
System.out.println(country);
System.out.println(commaSeparated.toString());
out.close();