ho String
e HashMap
come qui di seguito i codici:Sostituire stringa con valore hashmap usando Java 8 flusso
Map<String, String> map = new HashMap<>();
map.put("ABC", "123");
String test = "helloABC";
map.forEach((key, value) -> {
test = test.replaceAll(key, value);
});
e cerco di sostituire la stringa con i valori HashMap
, ma questo non funziona perché test
è finale e non può essere riassegnato nel corpo di forEach
.
Quindi ci sono soluzioni per sostituire String
con HashMap
utilizzando Java 8 Stream API?
'foreach()' non è sincronizzato. Il tuo codice non viene compilato perché non puoi avere un effetto collaterale su 'message' dall'interno della tua espressione lambda. Anche se tu potessi, tutto quello che otterresti è "messaggio" contenente l'ultima sostituzione su "test" per l'ultima voce sulla mappa nella mappa. Che probabilmente non è quello che vuoi. Anche perché "ultima voce sulla mappa" non è deterministica per 'HashMap'. – Ralf
Ok grazie, ho capito. ma cosa dovrei fare per ottenere tutti i contenuti del test che sono già stati sostituiti? –