Rud*_*koŭ 5 string groovy string-formatting
我想%s用价值代替
<server>
<id>artifactory</id>
<username>%s</username>
<password>%s</password>
</server>
Run Code Online (Sandbox Code Playgroud)
myString.format("name", "pass")常规中有什么方法吗?
Groovy具有对字符串插值的内置支持。您需要使用GString:
def name = "name"
def pass = "pass"
String formatted = """
<server>
<id>artifactory</id>
<username>$name</username>
<password>$pass</password>
</server>
"""
Run Code Online (Sandbox Code Playgroud)
如果您的值以数组或集合的形式出现,您甚至可以使用params[n]而不是命名变量($name),如下所示:
def params = ['name', 'pass']
String formatted = """
<server>
<id>artifactory</id>
<username>${params[0]}</username>
<password>${params[1]}</password>
</server>
"""
Run Code Online (Sandbox Code Playgroud)
如果您的字符串需要外部化,则可以使用模板引擎
除此之外,您可以使用普通的Java String.format:
def formatted = String.format(myString, "name", "pass")
Run Code Online (Sandbox Code Playgroud)
基于Java的groovy,在Java format中String类中有一个方法
所以这应该工作
def s='''<server>
<id>artifactory</id>
<username>%s</username>
<password>%s</password>
</server>'''
println String.format(s, "name", "pass")
Run Code Online (Sandbox Code Playgroud)
您可以使用DefaultGroovyMethods 中的sprintf
def name = "name"
def pass = "pass"
String formatted = """
<server>
<id>artifactory</id>
<username>$name</username>
<password>$pass</password>
</server>
"""
def f = sprintf( formatted, name, pass )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11069 次 |
| 最近记录: |