String 迭代
现在您已经熟悉 each() 方法了,它可以出现在所有相关的位置。假设您希望迭代一个 String,并且是逐一迭代字符,那么马上可以使用 each() 方法。如清单 12 所示:
清单 12. String 迭代
def name = "Jane Smith"
name.each{letter->
println letter
}
name.each{letter->
println letter
}
这提供了所有的可能性,比如使用下划线替代所有空格,如清单 13 所示:
清单 13. 使用下划线替代空格
def name = "Jane Smith"
println "replace spaces"
name.each{
if(it == " "){
print "_"
}else{
print it
}
}
// output
Jane_Smith
println "replace spaces"
name.each{
if(it == " "){
print "_"
}else{
print it
}
}
// output
Jane_Smith
当然,在替换一个单个字母时,Groovy 提供了一个更加简洁的替换方法。您可以将清单 13 中的所有代码合并为一行代码:"Jane Smith".replace(" ", "_")。但是对于更复杂的 String 操作,each() 方法是非常好的选择。