Eu tenho 2 cordas. Uma contém o "formato" e espaços reservados, enquanto o outro contém o valor real para os espaços reservados.
Por exemplo:
Cordas um: "<username> <password>"
Seqüência de dois: "myUser myPass"
Cordas um: "<name>, <familyName>"
Seqüência de dois: "John, Smith"
Eu estou tentando atribuir a variável String username
o valor do espaço reservado nome de usuário na segunda corda, ea variável String password
o valor do espaço reservado senha na segunda corda.
Eu sei sobre o String.replaceAll()
método, mas que não iria apenas substituir a primeira corda pelo segundo?
Uma maneira potencialmente viável para abordar este seria manter um mapa de tokens e seus substitutos. Então, você pode interagir esse mapa e aplicar as substituições ao seu texto, algo como isto:
String text = "There is a user <username> who has a password <password>";
Map<String, String> tokens = new HashMap<>();
tokens.put("<username>", "myUser");
tokens.put("<password>", "myPass");
for (Map.Entry<String, String> entry : tokens.entrySet()) {
text = text.replaceAll(entry.getKey(), entry.getValue());
}
System.out.println(text);
There is a user myUser who has a password myPass