2013-11-07 2 views
1

я должен извлекать значения из базы данных и добавить его в 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..and здесь значения, присутствующие в стране ..

[APAC, Северная Америка, Южная Америка, Европа]

Теперь, как в моей потребности я должен удалить пробел после каждой запятой значений и сделать это так ..

[APAC, Северная Америка, Южная Америка, Европа]

Пожалуйста, ребята, помогите мне решить эту проблему ..

Спасибо заранее.

ответ

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] 
+0

как насчет запятых? –

+0

@JunedAhsan. Запятые являются частью того, как 'ArrayList # toString' форматирует вывод – MadProgrammer

+0

. Запятые являются частью требуемого формата, и этот код не реализует его. – EJP

1

Вы полагаетесь на форматирование по умолчанию, предоставляемое ArrayList.toString(). Не делайте этого. Напишите свой собственный код форматирования.

+0

Или использовать гуавы в [Столяр] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Joiner.html), которая дает вам довольно много все которые вы когда-либо захотели в этом отделе. – BeeOnRope

+0

OKOK Вы уже сказали это в своем собственном ответе. Не нужно повторять его везде. – EJP

+0

Я этого не сделал, я просто повторил это здесь как альтернативу повторного изобретения колеса. – BeeOnRope

0

ArrayList toString метод выводит коллекцию, используя пробел после каждой запятой. Если вы хотите распечатать список без пробелов, вам нужно написать новый метод для этого.

1

Пространства не поступают из базы данных вообще, они всего лишь функция пути ArrayList.toString() (и на самом деле все классы JDK Collection, которые наследуются от AbstractCollection), красиво печатает ваш список.

Вы можете сказать, что это так, либо взглянув на the documentation для этого класса, либо отметив, что перед исходными [.

Я рекомендую Guava Joiner для полного контроля над вашим выходом.

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

даст String, который вы хотите.

0

Если память не является проблемой. храните его в отдельном StringBuilder

Это не должно быть трудной проблемой. Это всего лишь мануфактура.

Если вы хотите, чтобы значение, разделенное запятой, имело место в архиваторе, это даст вам это.

Если вам нужно, чтобы результат начинался и заканчивался квадратными скобками с внутренними значениями, разделенными запятой, без пробела между строками.

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

В итоге вы получите ' Строка 'заканчивается на ',]' ... – MadProgrammer

Смежные вопросы