Удаление [] из вывода ArrayList и сохранение в HashMap - PullRequest
1 голос
/ 07 ноября 2011

У меня есть HashMap.Ключом будет строка, а значением может быть что угодно, от переменной до ArrayList.

Проблема в том, что у меня есть ArrayList.Значения, хранящиеся в ArrayList: Region1, Region2, Region3, Region4.

Поэтому, когда я помещаю этот ArrayList в HashMap и распечатываю HashMap, я получаю вывод в виде [Region1, Region2, Region3, Region4].

Проблема в том, что мне нужно вставить всю строку, разделенную запятыми, в Db, и моя процедура не может распознать [] в этом выводе.

Как я могу это решить .. Я не могу ничего изменить в конце БД.Вот фрагмент кода: -

ArrayList<String> Region=new ArrayList<String>();
        Region.add("Region1");
        Region.add("Region2");
        Region.add("Region3");
        System.out.println(Region);

Output is [Region1, Region2, Region3]

Я поместил этот ArrayList в HashMap

HashMap<String,Object> regionHashMap=new HashMap<String,Object>();
        regionHashMap.put("regionssss", Region);
        System.out.println(regionHashMap);

Output is {regionssss=[Region1, Region2, Region3]}.

Как я могу удалить [] из ArrayList ...

Я ужеуспешно с использованием StringBuffer и Iterator, но я не могу использовать его каждый раз, так как у меня есть огромное количество ArrayList, который будет идти внутри HashMap ..

Ответы [ 3 ]

2 голосов
/ 07 ноября 2011

Строковое представление списка автоматически заключает в себе символы «[]». Вы можете создать свой собственный метод toString:

private String listToString(List<?> l) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < l.size(); i++) {
        sb.append(l.get(i));
        if (i != l.size() -1) sb.append(", ");
    }
    return sb.toString();
}

Или вы можете использовать функцию подстроки для удаления скобок:

String s = list.toString();
s = s.substring(1, s.length()-1);
0 голосов
/ 07 ноября 2011

Попробуйте создать подкласс HashMap и переопределить метод toString ()

0 голосов
/ 07 ноября 2011

Не использовать toString () вообще.Он не предназначен для создания отформатированных строк пользовательского интерфейса.Это инструмент разработчика, а не инструмент презентации пользователя.

Чтобы сделать то, что вы хотите, просто создать метод для отображения и выполнить форматирование в этом методе.

см. эту публикацию, чтобы получить больше об этом.

...