`
Puras
  • 浏览: 109846 次
  • 性别: Icon_minigender_1
  • 来自: 哪
社区版块
存档分类
最新评论

走进Groovy世界--String

阅读更多
发现自己的学习速度犹如老牛拉车,不是一般的慢啊。
今天刚刚把文档写完,本打算下午评审,想想,休息一下午吧,看看Groovy。
虽然速度慢,但只是小小小小的一步,也算是进步啊。

前几天看了一些Groovy入门和关于基本类型的东西,再前进一些,便到了字符串了,本来是想看完正则表达式一块写的,无奈不知那些何时才能看完,怕到时候看的这部分也忘光了,还是先流水账般记录一下,以便有时间再看的时候,也可以有忆可回。

Groovy中提供了两种String类型:普通的String(java.lang.String)和GStrings(groovy.lang.GString)。比Java更丰富了一些。

GString中,允许使用占位符,在这Java里是没有的,JSTL标签里有,吼吼,在看Ruby的时候,就在想,如果Java里有这个功能,在生成一些字符串的时候,如生成一条SQL脚本,应该会省很多力啦。格式类似于如"Hello, ${name}"。

在Java里,只提供了一种字符串的表现形式,就是使用双引号将字符串括起。而在Groovy中,却提供了几种不同的方式:
单引号:不会处理为GString,类似于Java里的String;
双引号:如果不包含占位符标识,则与单引号一样。如果含有占位符标识,则会理解为一个GString;
三个引号(单引或双引):允许一个字符串跨越多行,中间不用像Java中那样用+连接起来,会不区别平台的在每行的结尾自动的加上\n,而且会保留换行之后行首的空白(这点俺越不喜欢)。单引和双引的区别跟上面一样;
斜线/:允许字符串在存在\而不会对其转义,常用于正则表达式,如果\后跟u时,将进行转义。
其中,只有使用斜线时,才会偶尔的对反斜线进行转义,其他的几种均会对反斜线进行转义。在双引号中使用单引号,不需要进行转义,反之亦然。

上面的第一种表现形式是使用单引号,而在Java中,单引号一般用来表示Char型的数据。那如果在Groovy里要定义Char型数据要怎么办呢? 解决办法之一就是在定义变量之时,就指变量类型,如:
char x = 'x'
Character x = 'x'

两种写法都是定义一个java.lang.Character类型的变量。
另一个解决办法就是将字符串的转型为Char的,如:
def x = 'x' //此处为String
def c = x as char
或是
def c = x.toCharacter()

此时的变量c,则是Char型的了。

使用GString时,需使用双引号将内容括起,插入变量时可以使用${变量},也可以使用简短模式$变量,需要使用$的时候,需要用反斜线进行转义\$。

Groovy里的字符串操作同Java里的基本一致,而且还提供了一些简单的写法,如想打印一条语句,下面的写法在Java和Groovy里都是有效的:
System.out.println("Hello, World!")

使用Groovy提供的简单写法,可以去掉前面的前缀:
println("Hello, World!")

也可以省略掉方法后面的小括号:
println "Hello, World!"

比较一下,比Java里的简单了好多。

Groovy里还提供了一些Java没有的方法,下面是摘抄自《Groovy In Action》:
greeting = 'Hello Groovy!'
assert greeting.startsWith('Hello')
assert greeting.getAt(0) == 'H'
assert greeting[0] == 'H'
assert greeting.indexOf('Groovy') >= 0
assert greeting.contains('Groovy')
assert greeting[6..11] == 'Groovy'
assert 'Hi' + greeting - 'Hello' == 'Hi Groovy!'
assert greeting.count('o') == 3
assert 'x'.padLeft(3) == ' x'
assert 'x'.padRight(3,'_') == 'x__'
assert 'x'.center(3) == ' x '
assert 'x' * 3 == 'xxx'

基本上上面的方法,通过字符意思,都能明白是怎么回事,更多的方法和资料,查阅API文档吧。

流水账记录完毕。没有对Groovy有个整体的认识,所以有时理解一些东西的时候,不能更好的把握,或许随着了解的逐渐加深,情况会慢慢变好吧,但愿吧!
分享到:
评论
1 楼 xuejianshan 2008-01-03  
这门语言,偶也不是太了解的,不知道她占市场的份量有多大,?

相关推荐

    groovy-3.0.9-API文档-中英对照版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    groovy-3.0.9-API文档-中文版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    groovy-all-2.4.5-API文档-中英对照版.zip

    赠送jar包:groovy-all-2.4.5.jar; 赠送原API文档:groovy-all-2.4.5-javadoc.jar; 赠送源代码:groovy-all-2.4.5-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.5.pom; 包含翻译后的API文档:groovy-all...

    groovy-all-2.4.13-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.13.jar; 赠送原API文档:groovy-all-2.4.13-javadoc.jar; 赠送源代码:groovy-all-2.4.13-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.13.pom; 包含翻译后的API文档:groovy...

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy-all-2.4.5-API文档-中文版.zip

    赠送jar包:groovy-all-2.4.5.jar; 赠送原API文档:groovy-all-2.4.5-javadoc.jar; 赠送源代码:groovy-all-2.4.5-sources.jar; 赠送Maven依赖信息文件:groovy-all-2.4.5.pom; 包含翻译后的API文档:groovy-all...

    groovy-all-2.4.15.jar.zip

    groovy-all-2.4.15.jar文件,MAC使用时需存放在/Users/用户名/.gradle/caches/jars-3/某一缓存目录下,找不到就都看一下,我遇到的问题是缓存目录中下载的是2.4.17版本,应该跟gradle版本升级有关

    groovy-all-2.4.15.jar

    org.gradle.api.resources.ResourceException: Could not get resource '...下载groovy-all-2.4.15.jar后,放入对应的 android-studio/gradle/gradle-5.*/lib/目录。 重启 Android Studio 及可使用。

    groovy-all-2.4.12.jar

    最近的groovy-all-2.4.12.jar包供使用,解决as编译时报错问题

    groovy-all-2.4.8.jar

    - `groovy-all-2.4.8.jar` 是一个集合包,包含了Groovy运行时所需的所有类库,包括Groovy的核心库、标准库、编译器和其他相关模块。 - 这个jar包使得开发者可以在Java项目中方便地引入Groovy,无需单独管理各个...

    apache-groovy-sdk-4.0.1下载

    1. **groovy-all.jar**:这是一个包含了Groovy库所有模块的集合,你可以通过引入这个单一的jar文件来快速地在项目中使用Groovy。 2. **bin**目录:包含了一系列可执行脚本,如`groovy`, `groovyc`, 和 `groovysh`,...

    groovy-all

    标题“groovy-all”暗示这是一个包含Groovy完整实现的库,通常这样的库会包括Groovy的运行时环境和所有相关的类库。版本号“2.4.7”表明这是Groovy 2.4系列的一个稳定版本,发布于2016年,该版本可能包含了自2.4.0...

    groovy-2.5.1-API文档-中英对照版.zip

    赠送jar包:groovy-2.5.1.jar; 赠送原API文档:groovy-2.5.1-javadoc.jar; 赠送源代码:groovy-2.5.1-sources.jar; 赠送Maven依赖信息文件:groovy-2.5.1.pom; 包含翻译后的API文档:groovy-2.5.1-javadoc-API...

    groovy-binary-1.8.6

    "groovy-binary-1.8.6" 是Groovy的一个特定版本,其版本号表明这是1.8系列中的第六次更新。 Groovy的特性包括: 1. **简洁的语法**:Groovy的语法比Java更为简洁,例如,它可以省略括号、分号和类型声明,使代码更...

    groovy-2.3.6-installer

    在"groovy-2.3.6-installer"这个版本中,我们聚焦于Windows操作系统上的安装过程。 Groovy 2.3.6是该语言的一个稳定版本,发布于2014年,它提供了许多改进和新特性。对于开发者来说,选择特定版本可能是因为它满足...

    apache-groovy-sdk-3.0.6.zip

    1. **Groovy编译器**:SDK中的`groovy-3.0.6`目录可能包含了Groovy编译器,它是将Groovy源代码转换成Java字节码的工具,使得Groovy程序能够在Java平台上运行。 2. **GroovyShell和GroovyConsole**:这两个工具允许...

    groovy-2.5.1-API文档-中文版.zip

    赠送jar包:groovy-2.5.1.jar; 赠送原API文档:groovy-2.5.1-javadoc.jar; 赠送源代码:groovy-2.5.1-sources.jar; 赠送Maven依赖信息文件:groovy-2.5.1.pom; 包含翻译后的API文档:groovy-2.5.1-javadoc-API...

    groovy-2.4.0-beta-1.zip

    Groovy-2.4.0-beta-1.zip 是一个压缩包,其中包含了Groovy编程语言的一个特定版本,即2.4.0的测试版1。Groovy是一种动态、灵活的面向对象的脚本语言,它运行在Java平台上,并且与Java紧密集成。Groovy提供了简洁的...

    idea-grails-toolls整包jar资源

    groovy-2.4.5jar groovy-ant-2.4.5.jar groovy-bsf-2.4.5jar groovy-console-2.4.5.jar groovy-docgenerator-2.4.5.jar groovy-groovydoc-2.4.5.jar groovy-groovysh-2.4.5.jar groovy-jmx-2.4.5.jar groovy-json-...

    groovy-all-2.1.6.jar

    groovy-all-2.1.6.jar groovy-all-2.1.6.jargroovy-all-2.1.6.jar

Global site tag (gtag.js) - Google Analytics