Java String не заменяется значениями hashmap - PullRequest
0 голосов
/ 29 марта 2012
   for (Entry<String, String> entry : map.entrySet()) {

                String delimiter = "**";
                result = result.replace(delimiter + entry.getKey() + delimiter, entry.getValue());

            }

результат - моя строка, которая будет заменена значениями hashmap. Здесь строка (переменная результата) возвращается сама по себе, не заменяя никакого значения. Пожалуйста, есть предложения?


Из комментария

Мой хэш-файл содержит,

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("Rid", serviceBooking.getId().toString()); 
map.put("Rname", customer.getName()); 
map.put("Rnic", "");

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Алгоритм ОК. Вот рабочий, исполняемый пример:

// sample input
String input = "abcd **Rid** efgh";

// a small map
Map<String, String> map = new HashMap<String, String>();
map.put("Rid","VALUE");

// the loop that replaces the **Rid** substring
for (Map.Entry<String,String> entry:map.entrySet()){
  input = input.replace("**"+entry.getKey()+"**", entry.getValue());
  System.out.println(input);
}

Он печатает

abcd VALUE efgh
0 голосов
/ 29 марта 2012

Либо ваш HashMap пуст, либо исходная строка не содержит ничего, соответствующего ключам на карте, или вы написали две звездочки, где вы имели в виду один, или вы не избежали их / их, когда вам нужно или ...

Невозможно улучшить это, не увидев исходную строку и содержимое карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...