如何从arraylist中删除多余的空格

时间:2013-11-07 05:13:43

标签: java arraylist

我必须从数据库中检索值并将其添加到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 ..这里是该国家/地区的值..

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

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

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

请各位帮我解决这个问题..

提前致谢。

5 个答案:

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