注: SO のバックストーリーを省くために、実際のユース ケースを単純化する必要がありました。したがって、この質問に対する最初の反応が「なぜこれを行うのか」である場合、私を信じてください。
"
文字列に現れる二重引用符 (" ") を単一引用符 (" ") に置き換える Groovy 式を作成しようとしています'
。
// BEFORE: Replace my "double" quotes with 'single' quotes.
String toReplace = "Replace my \"double-quotes\" with 'single' quotes.";
// Wrong: compiler error
String replacerExpression = "toReplace.replace(""", "'");";
Binding binding = new Binding();
binding.setVariable("toReplace", toReplace);
GroovyShell shell = new GroovyShell(binding);
// AFTER: Replace my 'double' quotes with 'single' quotes.
String replacedString = (String)shell.evaluate(replacerExpression);
問題は、割り当てた行でコンパイル エラーが発生することですreplacerExpression
。
トークン ""toReplace.replace("" の構文エラー、{予期される
二重引用符文字 (""") を含む文字列をエスケープする必要があるためだと思いますが、文字列内の文字列であるため、ここで適切にエスケープする方法がわかりません。アイデアはありますか?ありがとうあらかじめ!