Groovy预览--文本处理
在Java中,字符串大多数使用java.lang.String类型处理,在Groovy中提供了一些途径是字符串工作更加容易
1Gstring
在groovy中,字符串能出现在单引号或者双引号中,在双引号的字符串中可以使用占位符,占位符在必要的时候将自动解析,这是个GString类型
def nick='Groovy' def book='Groovy in action' assert "$nick is $book"=="Groovy is Groovy in action" assert "${nick} is ${book}"=="Groovy is Groovy in action"
println "$nick is $book"
println "${nick} is ${book}"
Results: Groovy is Groovy in action
Groovy is Groovy in action
在groovy中,可以使用‘’‘(三个单引号) 或者“”“(三个双引号)表示多行字符串,如
def single='''Hello,
Synvata''' //单引号
def mul="""Hello,
Synvata"""//双引号
println single
println mul
每一种表示法的目的都是为了使文本内容最小化,每一个表示法都有一个和其他表示法不一样的属性:
- 单引号所表示的字符串不会按照GString的类型来处理内容,这等价于java的字符串;
- 双引号表示的意思与单引号表示的意思是等价的。如果字符串内容中包括没有被转义的$符号,那么它被加工成GString实例,GString更详细的信息将在下节介绍;
- 三组引号(或者是多行字符串)允许字符串的内容在多行出现,新的行总是被转换为“\n”,其他所有的空白字符都被完整的按照文本原样保留,多行字符串也许是一个GString实例,这根据是使用单引号或者多双引号而定,多行字符串事实上像Ruby或者Perl中的HERE-document。
- “/”表示的字符串,指明字符串内容不转义反斜杠“\”,这在正则表达式的使用中特别有用,就象后面看到的那样,只有在一个反斜杠接下来是一个字符u的时候才需要进行转义——这稍微有点麻烦,因为\u用来表示一个unicode转义。
2 StringBuffer
在groovy中修改字符串,可以使用StringBuffer!在StringBuffer中,可以使用<<操作符追加文本和下标操作符进行文本替换,在一个字符串上使用<<操作符将返回一个StringBuffer
def greeting="Hello" greeting<<= ' Groovy' greeting<<'!' println greeting greeting[1..4] = 'i' println greeting println (greeting instanceof java.lang.StringBuffer)
Results:
Hello Groovy!
Hi Groovy!
true