我正在编写一个程序,允许用户输入变量名称,然后可以在其他字符串中使用它们。例如,如果用户输入:对键“令牌”和值“aslkdjfna98y”创建
$token aslkdjfna98y
的映射。然后我想通过指定它应该使用的语法被换出在URL中添加此令牌变量:
http://www.example.com/getThing?token=$^{token}
所以在这里,我想换$^{token}
我的映射值aslkdjfna98y。
我曾尝试过各种String.replace
和String.replaceAll
电话,但我目前陷在一个循环 - 在那里它被称为该字符串包含文本$^{}令牌,但我不能代替文字。这里就是我奋力:
if (request.contains("$^{"))
{
//handle variables
for (String s : variables.keySet())
{
String str = String.format(Locale.US, "$^{%s}", s);
while(request.contains(str))
{
//Stuck Here
request = request.replace(String.format(Locale.US, "$^{%s}", s), variables.get(s));
}
}
}
这可能非常被简化到:
request.replaceAll(regex, str);
我该如何正确替换字符,或者我怎么能改善这种使用replaceAll
?
为什么所有降价?如果至少有人解释,我将不胜感激...... – Phil
几乎可以肯定,因为你基本上已经说过“我不能为这个自己读过这些东西而烦恼......” –