龙空技术网

Groovy学习-字符串

zhangyiant 48

前言:

此时我们对“java计算字符串表达式”大约比较重视,各位老铁们都想要学习一些“java计算字符串表达式”的相关文章。那么小编在网络上汇集了一些有关“java计算字符串表达式””的相关资讯,希望朋友们能喜欢,大家快快来了解一下吧!

单引号字符串

最简单的字符串,仅仅是java.lang.String。不支持里面插入变量,表达式。

字符串拼接

字符串拼接可以直接使用+号。

三单引号字符串

使用三个单引号来包围字符串,和普通单引号字符串一样,但是可以跨越多行。

如果在开头的时候有一个换行的话,字符串也会多一个换行符,可以使用\连接符,解决这个问题。

Escape特殊字符

在单引号字符串(包括三个单引号字符串)中可以使用\符号开表示一个特殊字符,例如制表符\t,换行符\n。

如果想表示\字符,那就写两个\。

还可以使用\u来表示Unicode字符。

双引号字符串

双引号字符串在没有插入变量的时候,会使用java.lang.String类型,但是在有插入变量的时候会使用groovy.lang;GString。

插入的变量表达式可以是任意的groovy表达式。

使用${}符号,在没有其他歧义的情况下,也可以只使用$。

当然一般还是推荐${},没必要省略而影响可读性。

可以使用任意的groovy表达式

没有歧义的,用点分隔的表达式,可以直接使用$前缀。

双引号字符串里面如果要表示$符号,则需要用\来escape,单引号字符串就没有这个问题。

内嵌Closure闭包

双引号字符串可以内嵌闭包,但是支持没有参数和只有一个参数两种。

如果没有参数,最后表达式的值就是字符串要替换的值。

如果有一个参数,这个参数的类型是java.io.StringWriter,可以使用<<把需要的东西填入这个对象。

内嵌Closure和普通表达式的区别。

使用Closure还有一个类似懒加载的作用,也不能完全说懒加载,应该说会运行时取值。

Closure代表的值在需要取得String值的时候重新计算。

在需要String类型的时候,如果提供GString,则会自动调用GString的toString()方法。

GString和String的hashcode

GString和String在hashcode上会不同,就算是他们toString()之后返回的是相同的字符串。

这导致在Map类型里面,不要使用GString作为key。

三个双引号字符串

这个和单引号一样,变成三个之后,就增加里跨越多行的能力。

斜杠字符串

使用/开头,/结束。

没什么特殊的,可以使用插入表达式,也可以支持多行,就像三个双引号的字符串一样。区别就是\字符不在需要escape了。这个在用于正则表达式的时候,比较好用。

但是要表示/的时候需要使用\escape。

$+斜杠字符串

以$/开始,/$结束。

和/字符串差不多,不过$符号也用于escape字符。

字符串总结表

官网文档里面的总结表,参考一下。

字符类型

groovy里面没有字符类型的表达方式,但是可以通过定义字符类型,强制转换,来生成字符类型的变量。

标签: #java计算字符串表达式