概述
在Groovy中使用字符串 - 51CTO.COM
在Groovy中使用字符串 - 51CTO.COM
在Groovy中使用字符串
2009-06-15 16:53 wonderlandsh JavaEye博客 我要评论(0) 字号: T | T本文介绍了Groovy的数据类型和控制结构中的字符串。Groovy支持两种类型字符串:一般的Java字符串,以及GStrings。本文的例子中详细解释了两种字符串各自的用法。 AD: 51CTO云计算架构师峰会 抢票进行中!
Groovy支持两种类型字符串:一般的Java字符串,它是java.lang.String的实例;和GStrings,它是groovy.lang.GString的实例,并且允许文本中包含占位符。GStrings并不是String的子类,因为String类是最终类(final class)不能被继承。然而,GString与一般的字符串一样,因为Groovy能将GStrings转型为Java strings。
GString 适用于编写模板代码(templating),因为您必须动态构建字符串(GStrings are useful in templating situations where you have to build your string dynamicly)。以下的清单给出了一个例子。
使用GStrings:
- firstWord = 'Hello'
- secondWord = 'dlroW'
- println "$firstWord ${secondWord.reverse()}"
结果如下:
- Hello World
GStrings不同于Java strings在于它们允许以${..}的语法嵌入变量。如果一个字符串由双引号或三重引号括起来,并且包含一个非转义符(unescaped)$,它必定是groovy.lang.GString的一个实例;否则,就是java.lang.String的一个实例。
${..}里可以包含任意有效的Groovy表达式,包括方法调用或变量名。只有调用GString的toString方法时(例如,把结果输出到控制台),${..}表达式才被求值。
Groovy支持的另一种字符串便是java.lang.String。然而,GDK还是动态注入许多帮助方法,使其易于应用。
以下的例子展示了在Groovy中声明一个字符串的不同方式:
- s1 = "Hello "World" " //Escape double quotes,转义双引号
- s2 = 'Hello "World" '
- assert s1 == s2
- s3 = 'Hello 'World' ' //Escape single quotes,转义单引号
- s4 = "Hello 'World' "
- assert s3 == s4
- assert new String('Hello World') == "Hello World"
- def s = ['h','e','l','l','o'] as char[]
- assert new String(s) == 'hello'
- assert new String(s,0,4) == 'hell'
- s.eachWithIndex{ch,index -> assert ch == s[index]}
- assert 'hello'.toCharArray() == ['h','e','l','l','o']
常用的转义符:
- assert 't' == '