用Groovy思考 第五章 Groovy特性深入(2)
来源:互联网 发布:jdk 6u43 windows x32 编辑:程序博客网 时间:2024/05/14 14:12
用Groovy思考 第五章 Groovy特性深入(2)
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs6. 斜线字符串
正如早先提到的,斜线可以用于定义字符串。用斜线定义字符串有一个优点:那就是,字符串本身的内容无需转义反斜线。比如:
def winpathQuoted = 'C:\\windows\\system32'
def winpathSlashy = /C:\windows\system32/
println winpathSlashy // C:\windows\system32
assert winpathSlashy ==~ '\\w{1}:\\\\.+\\\\.+'
assert winpathSlashy ==~ /\w{1}:\\.+\\.+/
7. 多行斜线字符串
斜线字符串还能够跨越多行。这一点对于多行正则表达式非常有用。比如:
def name = "vishal"
def path = "c:/groovy/"
def multilineslashy = /
Hello $name
path $path
dollar = $
path = c:\/groovy
/
println multilineslashy
输出为:
Hello vishal
path c:/groovy/
dollar = $
path = c:/groovy
8. 斜线字符串中的美元符号$
在多行斜线字符串中,如果字符串内出现斜线/,那么它需要被转义。另外,如果字符串内出现了$美元符号(没有用于表达式时),也需要转义,否则会报MissingPropertyException异常。比如:
def name = "vishal"
def path = "c:/groovy"
def multilineSlashy = /
Hello $name
path = $path
dollar = $test
path = c:\/groovy
/
println multilineSlashy
输出:
Exception thrown
四月 17, 2013 9:11:24 下午 org.codehaus.groovy.runtime.StackTraceUtils sanitize
WARNING: Sanitizing stacktrace:
groovy.lang.MissingPropertyException: No such property: test for class: ConsoleScript3
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at ConsoleScript3.run(ConsoleScript3:3)
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)
at groovy.lang.GroovyShell.run(GroovyShell.java:481)
at groovy.lang.GroovyShell.run(GroovyShell.java:163)
at groovy.lang.GroovyShell$run.call(Unknown Source)
at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:951)
at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.run(Closure.java:492)
at java.lang.Thread.run(Thread.java:722)
groovy.lang.MissingPropertyException: No such property: test for class: ConsoleScript3
at ConsoleScript3.run(ConsoleScript3:3)
- 用Groovy思考 第五章 Groovy特性深入(2)
- 用Groovy思考 第五章 Groovy特性深入(2)
- 用Groovy思考 第四章 Groovy特性深入
- 用Groovy思考 第四章 Groovy特性深入
- Groovy学习:第四章 Groovy特性深入
- 用Groovy思考 第二章 Groovy语言的关键特征
- 用Groovy思考 第三章 Groovy开发环境
- 用Groovy思考 第三章 Groovy开发环境
- 用Groovy思考 第二章 Groovy语言的关键特征
- Groovy学习:第五章 学习回顾groovy
- groovy安装及一些特性思考
- 用Groovy思考 第一章 用Groovy简化Java代码
- 用Groovy思考 第一章 用Groovy简化Java代码
- groovy
- groovy
- Groovy
- Groovy
- Groovy
- android 中可能导致内存无法释放的原因(更新中)
- 数据结构:队列的顺序存储结构(循环队列)
- Hadoop心跳机制源码分析
- Android UI 之SlidingMenu实现方法(一)
- RedHat4.8 yum 配置CentOS 4.8 源
- 用Groovy思考 第五章 Groovy特性深入(2)
- Android开发之
- 可信计算
- 密码发生器
- Dalvik虚拟机JNI方法的注册过程分析
- ZOJ 1107 FatMouse and Cheese(记忆化搜索)
- C语言内存分配及堆栈问题总结
- HDU1026:Ignatius and the Princess I
- 女人最好的老师是自己的男人