📅  最后修改于: 2023-12-03 14:41:39.205000             🧑  作者: Mango
Groovy提供了强大的字符串操作功能。与Java相比,Groovy的字符串可以使用单引号、双引号、三引号等多种形式,并且支持字符串插值和字符串模板等高级特性。
和Java一样,Groovy也支持单引号字符串和双引号字符串。其中,单引号字符串不支持字符串插值,而双引号字符串支持。
示例代码:
def name = 'John'
println('Hello, ' + name + '!') // Hello, John!
println("Hello, $name!") // Hello, John!
Groovy还支持使用三个单引号或双引号来定义多行字符串。三引号字符串中可以包含单引号和双引号,并且不需要转义。另外,三引号字符串还支持字符串插值和字符串模板。
示例代码:
def str = '''Hello,
World!'''
println(str)
def name = 'John'
def tmpl = """Hello,
${name.toUpperCase()}!"""
println(tmpl)
输出结果:
Hello,
World!
Hello,
JOHN!
在Groovy中,斜杠(/)不仅可以用作正则表达式的分隔符,还可以用作字符串的分隔符。如下是使用斜杠定义字符串的示例代码:
def str = /Hello, World!/
println(str)
输出结果:
Hello, World!
Groovy提供了一些实用的字符串操作方法。下面列出常用的方法:
toUpperCase()
和 toLowerCase()
将字符串转换为全大写或全小写形式。
示例代码:
def str = 'Hello, World!'
println(str.toUpperCase()) // HELLO, WORLD!
println(str.toLowerCase()) // hello, world!
trim()
去掉字符串两端的空格。
示例代码:
def str = ' Hello, World! '
println(str.trim()) // Hello, World!
substring()
截取字符串的一部分。
示例代码:
def str = 'Hello, World!'
println(str.substring(7)) // World!
println(str.substring(0, 5)) // Hello
split()
将字符串按指定的分隔符切割成数组。
示例代码:
def str = 'Hello, World!'
def arr = str.split(', ')
println(arr) // [Hello, World!]
join()
将字符串数组按指定的分隔符拼接成字符串。
示例代码:
def arr = ['Hello', 'World']
def str = arr.join(', ')
println(str) // Hello, World
Groovy的字符串插值和字符串模板是两个非常强大的特性。
在双引号字符串中,可以通过${表达式}
来插入表达式的结果。表达式可以是变量、方法调用、算术表达式等等。
示例代码:
def name = 'John'
def str = "Hello, ${name.toUpperCase()}!"
println(str) // Hello, JOHN!
在三引号字符串中,可以通过${表达式}
来插入表达式的结果,并且可以在表达式周围使用任意字符串。
示例代码:
def name = 'John'
def tmpl = """Hello,
<% if (name.length() > 5) { %>
${name.toUpperCase()}!
<% } else { %>
${name}!
<% } %>"""
println(tmpl) // Hello,
// John!
在上面的示例代码中,我们使用<% ... %>
来包含Groovy代码块,然后在模板字符串中使用${表达式}
来插入表达式的结果。
Groovy中的字符串转义和Java类似,需要使用反斜杠(\)作为转义符。
示例代码:
def str = 'Hello, \'John\'!'
println(str) // Hello, 'John'!
在上面的示例代码中,我们使用反斜杠来转义单引号。
Groovy的字符串支持多种形式,可以通过字符串插值和字符串模板来实现格式化输出,同时还提供了一些实用的字符串操作方法,使字符串处理更加方便和高效。