1. 数字对象
Groovy的数字被定义为对象,都是Number类的子类的一个实例。

数字的包装类
Numbers类方法:
| 方法 | 描述 |
|---|---|
| xxxValue() | 接受Number作为参数,基于调用的方法返回基本类型。 |
| compareTo() | 比较两个数字的值 |
| equals() | 比较两个数字的对象 |
| valueOf() | 返回参数的值得Number对象 |
| toString() | 返回Number对象的值得String对象 |
| parseXxx() | 返回String的原始数据类型 |
| abs() | 返回参数的绝对值 |
| ceil() | 向上取整 |
| floor() | 向下取整 |
| rint() | 四舍五入取整 |
| round() | 四舍五入取整 |
| min() | 返回较小的参数 |
| max() | 返回较大的参数 |
| exp() | 返回自然对数e为底的参数的幂 |
| log() | 返回自然对数 |
| pow() | 返回第一个参数的第二个参数次幂 |
| sqrt() | 返回参数的平方根 |
| sin() | 返回指定double值的正弦值 |
| cos() | 返回指定double值的余弦值 |
| tan() | 返回指定double值的正切值 |
| asin() | 返回指定double值的反正弦值值 |
| acos() | 返回指定double值的反余弦值 |
| atan() | 返回指定double值的反正切值值 |
| atan2() | 将直角坐标(x,y)转换为极坐标(r, theta)并返回theta |
| toDegrees() | 将参数值转换为度 |
| radiant() | 将参数值转换为弧度 |
| random() | 用于生成[0.0, 1.0)之间的随机数 |
2. 字符串对象
- 引号包含的字符串文本,在Groovy中创建一个字符串对象。
- 可以用单引号,双引号,三引号包含字符串,其中,三引号包含的字符串可以换行
- 字符串的单个字符可以通过索引访问,索引从零开始,以小于字符串长度的一个结束。
- 可以从字符串末尾开始访问
字符串操作
| 方法 | 操作 |
|---|---|
| + | 字符串的串联 |
| * | 字符串的重复 |
| length() | 字符串的长度 |
字符串方法
| 方法 | 描述 |
|---|---|
| String center(Number numberOfChars) | 返回长度为numberOfChars的新字符串,两端由空格组成 |
| int compareToIgnoreCase(String str) | 按字母顺序比较两个字符串,忽略大小写差异。返回差值(正负整数或者零) |
| String concat(String str) | 将指定的String连接到此String的结尾 |
| void eachMatch(String regex, Closure clos) | 处理每个正则表达式组匹配的给定String的子字符串 |
| Boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结尾 |
| Boolean equalsIgnoreCase(String str) | 与另一个字符串进行比较,忽略大小写 |
| String getAt(int index) | 返回字符串索引位置的字符串 |
| public int indexOf(int ch) | 此字符串中指定子字符串第一次出现的索引,可以指定搜索位置 |
| Boolean matches(String regex) | 正则匹配 |
| String minus(Object value) | 删除字符串的值部分 |
| String next() | 字符串中的最后一个字符+1 |
| String previous() | 字符串中的最后一个字符-1 |
| String padLeft(Number numberOfCharacters) | 填充字符串,并在左侧附加空格,也可以指定填充的字符串 |
| String padRight(Number numberOfCharacters) | 填充字符串,并在右侧附加空格,也可以指定填充的字符串 |
| String replaceAll(String regex, String replacement) | 替换 |
| String reverse() | 反置 |
| String[] split(String regex) | 切割 |
| String substring(int beginIndex) | 截取,可以指定结束位置 |
| String toUpperCase() | 转化为大写 |
| String toLowerCase() | 转换为小写 |
| String plus(Object value) | 字符串追加 |
3. 范围对象
- 1..10 - 包含范围
- 1 .. <10 - 排除范围
'a'..'x' - 字符范围
10..1 - 降序范围
'x'..'a' - 字符降序范围
范围方法
| 方法 | 描述 |
|---|---|
| boolean contains(Object obj) | 是否包含 |
| Object get(int index) | 获取索引位置的值 |
| Comparable getFrom() | 获取范围的下限值 |
| Comparable getTo() | 获取范围的上限值 |
| boolean isReverse() | 是否是降序范围 |
| int size() | 元素数 |
| List subList(int fromIndex, int toIndex) | 返回范围的子范围 |
4. 列表对象
- 列表用方括号包裹,用逗号隔开
- [11,12,13,14] - 整数值列表
- ['Angular','Groovy','Java'] - 字符串列表
- [1,2,[3,4],5] - 嵌套列表
- ['Groovy',21,2.11] - 异构的对象引用列表
- [] - 空列表
列表方法
| 方法 | 描述 |
|---|---|
| boolean add(Object value) | 添加元素 |
| boolean contains(Object value) | 查找元素,返回是否存在 |
| Object get(int index) | 返回指定位置的元素 |
| boolean isEmpty() | 判断是否为空 |
| List minus(Collection collection) | 列表差集 |
| List plus(Collection collection) | 列表并集 |
| Object pop() | 返回并删除列表最后一个值 |
| Object remove(int index) | 删除指定位置的值 |
| List reverse() | 列表倒置 |
| int size() | 获得列表长度 |
| List sort() | 列表排序 |
5.映射
- Map(映射,关联数组,字典,表,三列)是对象引用的无序集合。
- Map中的元素由键访问。
- ['TopicName':'Lists','TopicName':'Maps'] - 具有TopicName作为键的键值对的集合及其相应的值。
- [:] - 空映射。
映射方法
| 方法 | 描述 |
|---|---|
| boolean containsKey(Object key) | 键值是否存在 |
| Object get(Object key) | 根据键值获取值 |
| Set keySet() | 获取键值的集合 |
| Object put(Object key, Object value) | 插入键值对 |
| int size() | 返回Map的大小 |
| Collection values() | 值得集合 |
6.日期和时间
- 类是Date
- 具有毫秒精度
- 构造方法Date(),构建Date对象,以最近的毫秒为单位
- 构建方法Date(long millisec),1970年1月...起始的制定毫秒数
- 年表示为y-1900
- 月表示为0-11
- 日期表示为1-31
- 小时表示为0-23
- 分钟表示为0-59
日期和时间的方法
| 方法 | 描述 |
|---|---|
| public boolean before(Date when) | 是否早于指定时间 |
| public boolean after(Date when) | 判断是否晚于指定时间 |
| public boolean equals(Object obj) | 是否相等 |
| public int compareTo(Date anotherDate) | 返回0,-1,1表示等于,早于,晚于 |
| public String toString() | 转换为格式化的字符串,dow mon dd hh:mm:ss zzz yyyy |
| public long getTime() | 获取1970年1月...以来的毫秒数 |
| public void setTime(long time) | 指定时间点为1970年1月...以来的毫秒数 |
7.正则表达式
- 用〜“regex”表示一个本地支持的正则表达式
- 当Groovy运算符=〜在if和while语句(见第8章)中作为谓词(返回布尔值的表达式)出现时,左侧的String操作数与右侧的正则表达式操作数匹配。