ユーザーが他の文字列で使用できる変数名を入力できるようにするプログラムを作成しています。たとえば、ユーザーが次のように入力した場合:
$token aslkdjfna98y
キー「token」と値「aslkdjfna98y」のマッピングが作成されます。次に、この構文を使用してスワップ アウトする必要があることを指定して、このトークン変数を URL に追加します。
http://www.example.com/getThing?token=$^{token}
ここで$^{token}
、マップされた値aslkdjfna98yと交換したいと思います。
String.replace
さまざまなString.replaceAll
呼び出しを試しましたが、現在ループに陥っています.Stringにテキスト$^{token}が含まれていることがわかっていますが、テキストを置き換えることはできません。これが私が苦労している場所です:
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
ですか?