1. 字符串字面值:
Groovy中可以使用单引号、双引号或三引号("""aaa""")来封装字符串。三引号表示的字符串可以包含多行文本。
使用单引号封装的字符串的值就是所列出的字符序列本身。而另外两种形式的字符串的值有可能会进一步被解释。任何包含在解释型字符串中的${expression}都将被求值,其结果是字符串的一部分。
def age = 25
'My age is ${age}' //My age is ${age}
"My age is ${age}" //My age is 25
"""My age is ${age}""" //My age is 25
"My age is \${age}" //My age is ${age}
2. 字符串索引和索引段:
字符串的索引从0开始,止于该字符串的长度值减1。Groovy也支持负数索引,但是其顺序是从字符串的末尾开始往前计算。子字符串通常可以用索引段来表示。
def greeting = 'Hello world'
println greeting[4] //o
println greeting[-1] //d
println greeting[1..2] //el
println greeting[1..<3] //el
println greeting[4..2] //oll
println greeting[4,1,6] //oew
请注意,1..2和1..<3这两种索引段表示方法,这种表示方法也被称为范围。1..2表示索引范围从1开始到2结束,包括边界。1..<3是不包含边界的索引范围表示方法,表示索引范围从1开始,到小于3的整数结束。
3. 基本操作:
基本的字符串操作包括两个字符串的合并、字符串的复制,以及计算字符串的长度等。下面是一些例子:
def greeting = 'Hello world'
println 'Hello'+' world' //Hello world
println 'Hello'*3 //HelloHelloHello
println greeting-'o world' //Hell
println greeting.size() //11
println greeting.length() //11
println greeting.count('o') //2
println greeting.contains('ell')//true
count()方法统计某个子字符串出现的次数。contains()方法判断某个字符串是否包含指定的子字符串。
Groovy字符串是不可变的,它们在任何地方都不可能改变。可以通过索引、索引段以及合并其他字符串的方式创建一个新的String对象。因此greeting-'o world'表达式演示了新String对象‘Hell’的产生过程,但字符串对象greeting本身仍没有变化。
4. 字符串方法:
5. 比较字符串:
Groovy支持String对象之间的比较方法,该操作是指定方法的重载版本。
这样,在比较两个String对象时,就可以使用str1==str2,这比使用str1.equal(str2)要方便得多。
同样,str1<=>str2就代表str1.compareTo(str2)。如果str1在str2之前,返回值为-1;如果str1在str2之后,返回值为+1;如果str1和str2相同,返回值为0。
println 'ken'<=>'ken' //0
println 'ken'<=>'kenneth' //-1
println 'ken'<=>'Ken' //1
println 'ken'.compareTo('Ken') //32
字符串比较采用字典顺序,大写字母排在小写字母之前。Groovy采用Unicode字符集。
6. 正则表达式: