2015-10-28 5 views
1

У меня есть TreeMap:Java: Заменить в TreeMap

TreeMap<String, Integer> map = new TreeMap<String, Integer>(); 

Он подсчитывает слова, которые ставятся, например, если я ввожу:

"Hi hello hi" 

Он печатает:

{Hi=2, Hello=1} 

Я хочу заменить это "," на "\n", но я не понял методы в библиотеке Java. Возможно ли это сделать? И можно ли преобразовать всю TreeMap в строку?

+0

'map.toString() заменить ("", "\ п");.' –

ответ

3

При печати карты на System.out используется функция toString карты для печати карты на консоль.

Вы можете либо строка заменить запятую с новой строки, как это:

String stringRepresentation = map.toString().replace(", ", "\n"); 

Это может, однако, создает проблемы, когда ваш key в карте содержит запятые.

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

public String mapToMyString(Map<String, Integer> map) { 
    StringBuilder builder = new StringBuilder("{"); 
    for (Map.Entry<String, Integer> entry : map.entrySet()) { 
     builder.append(entry.getKey()).append('=').append(entry.getValue()).append('\n'); 
    } 
    builder.append('}'); 
    return builder.toString(); 
} 

String stringRepresentation = mapToMyString(map); 
+0

Да, именно это я не понял. Благодаря! – JavaCoder

+0

Я думаю, что ваш первый пример неверен, '', '' имеет ошибочное ведущее пространство, должно быть '', ''. – MikeFHay

+0

Исправить; исправленный ответ. Благодарю. –

2

Гуава имеет много полезных методов. Посмотрите на Joiner.MapJoiner

Joiner.MapJoiner joiner = Joiner.on('\n').withKeyValueSeparator("="); 
System.out.println(joiner.join(map)); 
Смежные вопросы