Groovy里有两种字符串:java.lang.String和groovy实现的groovy.lang.GString
String的表现形式
单引号 |
'hello world' |
String |
双引号 |
"hello world"
"hello, $name"
|
String
GString
|
3个单引号 |
''' h1
h2
h3'''
|
String |
3个双引号 |
"""h1
h2
h3"""
|
String or GString |
斜杠 |
/^test/ |
String |
备注:
1、单引号的只能是java.lang.String,即使含有没有转义的$符号
2、如果含有没有转义的$符号,则为String;否则为GString
3、3个单引号或双引号,字符串可以为多行
双引号的字符串中,$的使用
如果字符串中含有没有转义的$符号,那么它会在运行期替换
如下事例:
me = 'Tarzan' you = 'Jane'
line = "me $me - you $you"
assert line == 'me Tarzan - you Jane'
date = new Date(0)
out = "Year $date.year Month $date.month Day $date.date"
assert out == 'Year 70 Month 0 Day 1'
out = "Date is ${date.toGMTString()} !"
assert out == 'Date is 1 Jan 1970 00:00:00 GMT !'
这个替换的写法,类似于velocity中的用法。
如果想做双引号字符串里显示$这个字符,就要加一个反斜杠做转义,如"\$'
字符(char)
groovy里,要想获得一个char,必须使用对应的类Character类,也可以通过String转化
如以下代码
'x' as char
or
'x'.toCharacter()
字符串的使用
除了我们日常使用java String的一些方法,groovy还增强了一些方法
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'
assert 'xx' - x == 'x'
更多的用法,大家可以参考
1、http://groovy.codehaus.org/groovy-jdk/java/lang/String.html
2、http://groovy.codehaus.org/gapi/groovy/lang/GString.html
分享到:
相关推荐
字符串插值功能使得字符串在Groovy中不仅是一个简单的文本容器,更是一个可以包含动态内容的数据结构。 综上所述,Groovy提供的字符串处理特性,能够使程序员在处理文本数据时更加灵活高效,这无疑是Groovy作为动态...
下面将详细解析Groovy在字符串处理中的几个关键知识点: 1. **访问子字符串** - Groovy允许通过索引访问字符串中的子串,如`str.substring(startIndex, endIndex)`。 2. **设置默认值** - 当变量可能为空时,...
9. **GString**:Groovy的GString可以方便地进行字符串格式化,类似于Java的String.format()方法。 10. **元编程**:Groovy支持元编程,允许在运行时修改或扩展类的行为,提供了强大的灵活性。 在安装"groovy-...
- 使用`groovy.util.Eval`类来评估存储在Java字符串中的简单代码。 - 通过`groovy.util.GroovyShell`提供更灵活的绑定和可选的预解析功能。 #### 三、语言元素 Groovy提供了丰富的语言元素,包括但不限于: - **...
- **字符串处理**: Groovy提供了丰富的字符串处理功能,包括格式化字符串、字符串替换等。 - **集合操作**: 支持多种集合类型,如列表(List)和映射(Map),并提供了便捷的操作方法。 - **类和闭包**: Groovy支持面向...
- Groovy的基本数据类型(如数字、字符串等) - 集合数据结构(列表、集合、映射等) - 控制结构(条件语句、循环等) **4. Object-Oriented Groovy** - **介绍**: 讨论了如何在Groovy中实现面向对象编程。 - *...
4. **GString**:Groovy的字符串可以包含表达式,使得字符串插值变得简单。 在实际开发中,Groovy常用于构建自动化脚本、配置文件、持续集成(CI)任务,甚至作为大型项目的一部分。Grails是一个基于Groovy的Web...
Groovy将所有类型都视为对象(Everything is an object),这意味着Groovy中的基本数据类型(如整数、浮点数和字符串)也拥有方法。Groovy利用这一特性,提供了许多方便的操作,例如字符串插值,以及利用GString实现...
- **字符串连接**:Groovy支持多行字符串,可以通过使用三引号(`"""`)来创建,不需要使用`+`号连接字符串。 - **一切皆对象**:Groovy中,所有变量都是对象,这意味着你可以对任何类型的数据执行对象方法,即使在...
在Groovy中,Map的键可以是任意类型,但通常我们使用字符串。声明Map时,可以省略字符串引号,例如`["a":1]`与`[a:1]`是等价的,前提是`a`不是Groovy的关键字且符合标识符规则。然而,如果键是一个变量,如`def x = ...
Groovy支持基本的数据类型,如整型(int)、浮点型(float)、布尔型(boolean)和字符串(String)。此外,它还有动态类型,即GroovyObject,所有Groovy对象都继承自这个类型。 3. **列表和映射** Groovy中的...
- **隐式类型转换**:Groovy会自动处理基本类型的隐式转换,如字符串与数字之间的转换。 - **GString**:Groovy中的字符串可以包含表达式,使得字符串插值变得简单。 - **闭包**:Groovy支持函数式编程中的闭包,...
它可以处理基本数据类型和对象类型,当使用Java类型时,Groovy会自动进行装箱和拆箱操作。 对象和类: Groovy支持面向对象编程,你可以定义类并创建对象。类中可以定义属性和方法。Groovy简化了属性的定义,通过...
- **简洁语法**:Groovy的语法比Java更加简洁,它支持方法调用的点语法,以及闭包和内建的GString(类似模板字符串)。 - **动态类型**:Groovy允许开发者在不指定变量类型的条件下编写代码,但在运行时可以自动...
- **字符串拼接**:使用`+`进行拼接。 ```groovy def greeting = "Hello" + ", " + name ``` - **三引号字符串**:用于包含多行文本。 ```groovy def multilineString = """ This is a multi-line string. ...
在字符串处理方面,Groovy引入了GString,这种字符串可以包含表达式,能够在运行时被评估。同时,Groovy还引入了对正则表达式的支持,使得文本模式匹配和处理更加方便。 在集合类型方面,Groovy支持使用范围...
- **内容概述**: 详细介绍Groovy中的基本数据类型及其用法。 - **知识点**: Groovy中的数字类型、字符类型、布尔类型等。 - **学习目标**: 熟练使用Groovy中的各种数据类型进行编程。 **第4章: The Collective ...