_%s
_を値に置き換えたい
_<server>
<id>artifactory</id>
<username>%s</username>
<password>%s</password>
</server>
_
GroovyにはmyString.format("name", "pass")
メソッドはありますか?
上記の回答とコメントを1か所に集めるには、2つの方法があります。
String.format
機能 上記参照 に基づいています。これは、便利な関数sprintf
にラップされたグルーヴィーなものです-例 こちら または ここ私の個人的な意見では、最初のオプションは最初に尋ねられた質問により適しています。これは、「テンプレート」文字列を作成できるため、コードの任意の場所の任意の場所で任意のパラメーターを使用できるためです。これは、元の質問のユースケースのようです。
一般に、文字列補間とsprintfの間には2つの大きな違いがあります。
{-> expr}
)で使用しても、テンプレートアプリケーションの明示的な動作はなく、特定の名前で外部定義された変数に依存するため、信頼性は低くなります。テンプレートのユースケースの例として、次のことを考慮してください。
// can be defined in the same function, or as static variable in the class or even
// in other class
final String URL_TEMPLATE = 'http://fake.weather.com/rest/%s' // arg - country abbreviation
// ...
// Here we want to get weather for different countries.
def countries = ['US', 'DE', 'GB']
for (country in countries) {
def url = URL_TEMPLATE.format(country)
// send the request, accumulate the results
}
このソリューションは、文字列補間を使用するのは簡単ではありません。もちろん、文字列補間にも基づいてソリューションを構築することは依然として可能ですが、見た目は大きく異なります。