1

我必须从数据库中检索值并将其添加到数组列表中。这是我的代码..

 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();

我已将从数据库中检索到的所有值添加到国家/地区。这是该国家/地区中存在的值。

[亚太、北美、南美、欧洲]

现在根据我的需要,我必须在每个逗号值之后删除空格并使其像这样..

[亚太地区、北美、南美、欧洲]

请大家帮我解决这个问题..

提前致谢。

4

5 回答 5

1

您依赖的是ArrayList.toString().Don't do that 提供的默认格式。编写自己的格式化代码。

于 2013-11-07T05:17:31.750 回答
1

您所看到的是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]
于 2013-11-07T05:17:35.093 回答
1

这些空间根本不是来自数据库,它们只是一种方式ArrayList.toString()(实际上是继承自的所有 JDK Collection 类AbstractCollection)漂亮地打印您的列表。

您可以通过查看此类的文档或注意在初始 [.

我推荐Guava Joiner来完全控制你的输出。

Joiner.on(',').join(country);

会给String你想要的。

于 2013-11-07T05:19:28.307 回答
0

如果内存不是问题。将其存储在单独的 StringBuilder 中

这应该不是一个难题。这只是一点点manupluation。

如果您希望逗号分隔的值在 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();
于 2013-11-07T05:28:17.497 回答
0

ArrayListtoString方法在每个逗号后使用空格打印集合。如果要打印不带空格的列表,则需要编写一个新方法来执行此操作。

于 2013-11-07T05:17:55.953 回答