groovy学习.docx
- 文档编号:3884167
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:16
- 大小:21.16KB
groovy学习.docx
《groovy学习.docx》由会员分享,可在线阅读,更多相关《groovy学习.docx(16页珍藏版)》请在冰豆网上搜索。
groovy学习
1.Groovy学习系列--数值介绍
数值
Groovy支持两种数值类型:
整数
正数
例如:
12
零
例如:
0
负数
例如:
-12
浮点数
正数
例如:
12.00
零
例如:
0.00
负数
例如:
-12.00
2.Groovy学习系列--表达式
表达式
类型
运算符
示例
备注
算术运算符
加法(+)
5+3==>8
减法(-)
5-3==>2
乘法(*)
5*3==>15
除法(/)
5/3==>1.6666666667
取模运算符
取模(%)
5%3==>2
只能对整数进行取模
一元运算符
自增(++)
defx=10
defy=x++==>x=11,y=10
后置自增
defx=10
defz=++x==>x=11,z=11
前置自增
自减(--)
defx=10
defy=x--==>x=9,y=10
后置自减
defx=10
defz=--x==>x=9,z=9
前置自减
关系运算符
小于(<)
5<3==>False
返回:
True或False
小于等于(<=)
5<=3==>False
返回:
True或False
大于(>)
5>3==>True
返回:
True或False
大于等于(>=)
5>=3==>True
返回:
True或False
等于(==)
5==3==>False
返回:
True或False
不等于(!
=)
5!
=3==>True
返回:
True或False
比较大小(<=>)
5<=>3==>1
大于返回1
等于返回0
小于返回-1
3.Groovy学习系列--赋值
赋值
赋值语句:
变量名=变量值
1、第一次使用某个变量时,需要使用关键字def先申明变量,后续赋值过程中不需要使用关键字def。
示例:
defcount=0
count=count+1
2、变量名:
Groovy中变量名命名规则:
1)必须由字母和数字组成;
2)大小写敏感(区分大小写);
3)首字符必须为字母;
4)可以包含下划线,按字母处理;
5)不能包含Groovy关键字;
4.Groovy学习系列--范围
范围是表达特定序列值的一种简略方法,通过序列中的第一个值和最后一个值表示,具有包含和不包含关系。
范围范例:
‘A’..’D’//返回A,B,C,D
‘A’..<’D’//返回A,B,C
10..6//返回10,9,8,7,6
‘Z’..‘X’//返回Z,Y,X
5.roovy学习系列--字符串
1、定义字符串:
字符串可以使用单引号(’)、双引号(”)、三引号(”””)
定义类型
描述
示例
空字符串
‘’或“”
单引号
显示字符本身,不支持转义
defage=25
‘ageis${age}’==>ageis$age
双引号
定义单行字符串,支持转义
defage=25
“ageis${age}”==>ageis25
三引号
可定义多行字符串,支持转义
defage=25
“””hello,
ageis${age}”””==>ageis25
2、获取字符串内容
字符串是顺序排列的字符集合,字符串索引指单个字符在字符串的位置。
索引从0开始,最大为字符串长度减1
示例:
deffirst=‘HelloWorld’
first[4]==>o//返回索引为4的字符
first[-1]==>d//返回最后一个字符
first[1..2]==>el//返回索引为2、3的字符
first[1..<3]==>el//返回索引从2开始,小于3的字符
first[4..2]==>ool//返回索引从4到2的字符
first[4,1,6]==>oew//f返回索引为4、1、6的字符
3、字符串方法
函数名称
说明
示例
size
返回字符串长度
‘hello’.size()//返回5
length
返回字符串长度
‘hello’.length()//返回5
getAt
获取指定下标对应的字符值
‘Hello’.getAt
(1)//返回e
‘Hello’.getAt(0..<3)//返回Hel
‘Hello’.getAt(0,2,4)//返回Hlo
indexOf
返回指定字符在字符串中首次出现的索引值
‘Hello’.indexOf(l)//返回2
concat
连接两个字符串
‘He’.concat(‘llo)//返回Hello
plus
字符串相加
'He'.plus('llo)//返回Hello
compareToIgnoreCase
按词典顺序比较两个字符串,忽略大小写
‘Hello’.compareToIgnoreCase(‘hello’)
//返回0不相同返回-1
equalsIgnoreCase
比较两个字符串,忽略大小写,相同返回true,不同返回false
‘Hello’.equalsIgnoreCase(‘hello’)
//返回true
endsWith
判断是否以指定字符结尾
‘Hello’.endsWith(‘lo’)//返回true
eachMatch
判断字符串是否与指定的正则表达式匹配
'hello12a'.eachMatch(/\d*/){ch->printlnch}
//返回12
matches
判断字符串是否匹配指定的正则表达式,匹配返回ture,不匹配返回false
'hello'.matches(/[a-z]{5}/)
//返回true
minus
删除字符串中指定的字符
'hello'.minus('lo')//返回hel
replaceAll
替换所有与正则表达式匹配的字符值
'hello'.replaceAll('l','L')//返回heLLo
reverse
获取当前字符串的逆序字符串
'hello'.reverse()//返回olleh
split
使用与给定的正则表达式相匹配的子字符串将字符串分割为多个字符串
'hello'.split('e')//返回[h,llo]
substring
获取当前字符串的子字符串
'hello'.substring
(1)//返回ello
'hello'.substring(1,3)//返回el
toLowerCase
将字符串字符转换为小写
'heLLo'.toLowerCase()//返回hello
toUpperCase
将字符串字符转换为大写
'heLLo'.toUpperCase()//返回HELLO
toDouble
转换为Double类型
'1'.toDouble()//返回1.0
toFloat
转换为Float类型
'1'.toFloat()//返回1.0
toInteger
转换为Integer类型
'1'.toInteger()//返回1
toLong
转换为Long类型
'1'.toLong()//返回1
toList
转换为List类型
'1234'.toList()//返回[1,2,3,4]
6.Groovy学习系列--列表
列表(数组)
列表是一种用来存储数据项集合的数据结构,列表中元素的位置是有序的,通过一个整数索引进行标识,索引从0开始。
1、声明列表:
defnumber=[1,2,3,4,5]
2、获取列表内容
defnumber=[1,2,3,4,5]
number[0]//获取第1个元素值,返回1
number[-2]//获取倒数第2个元素值,返回4
number[0..1]//获取第1、2个元素值,返回[1,2]
number[1..<3]//获取第2个元素开始,索引值小于3的元素值,返回[2,3]
3、给列表赋值:
defnumber=[1,2,3]
number[1]=4//设置第2个元素值为4,返回[1,4,3]
number[2]=[5,6]//设置第3个元素值为[5,6],返回[1,4,[5,6]]
number<<7//向列表末尾追加元素7,返回[1,4,[5,6],7]
4、连接列表
defnumber=[1,2,3]
number+[4,5]//连接两个数组,返回[1,2,3,4,5]
5、列表方法:
函数名称
说明
示例
add
向列表末尾追加元素
[1,2,3].add(4)//返回[1,2,3,4]
[1,2].add([4,5])//返回[1,2,4,5]
在当前指定索引位置插入新值
[1,2,3].add(1,4)//返回[1,4,2,3]
get
返回当前指定索引的元素值
[1,2,3].get
(1)//返回2
getAt
返回当前指定索引的元素值
[1,2,3,4].getAt
(1)//返回2
[1,2,3,4].getAt(1..2)//返回[2,3]
[1,2,3,4].getAt([1,2])//返回[2,3]
contains
判断指定元素是否存在列表中
[1,2,3].contains
(2)//返回true
[1,2,3].contains(4)//返回false
isEmpty
判断列表是否为空
[].isEmpty//返回true
[1,2].isEmpty//返回false
Size
返回列表元素个数
[1,2,3].size//返回3
flatten
使当前列表形式一致
[1,2,[3,4]].flatten//返回[1,2,3,4]
intersect
返回两个数组的交集
[1,2,3].Intersect([3,4])//返回[4]
pop
删除列表的最后一个元素,返回删除的元素值
[1,2,3].pop//返回3
remove
删除列表中指定索引的元素
[11,12,13].remove
(1)//返回[11,13]
删除列表中首次出现的指定元素
[11,12,13,12].remove(12)//返回[11,13,12]
sort
将列表元素从小到大进行排序
[14,12,13].sort//返回[12,13,14]
7.Groovy学习系列--映射
映射(散列)是一种引用对象的无序集合。
1、映射声明
defm=[:
]//空映射
defm=[‘id’:
’1’,’name’,’Tom]
defm=[4:
[2],6:
[2,3]]
2、访问映射
definfo=[‘id’:
’1’,’name’,’Tom]
info[‘id’]//返回1
info[‘value’]//返回null
3、映射方法
函数名称
说明
示例
put
向映射中添加内容,如果存在对应的key,则替换映射值
definfo=['id':
1,'name':
'Tom']
info.put('id','2')//返回[id:
2,name:
Tom]
info.put('score','75')
//返回[id:
2,name:
Tom,score:
75]
containsKey
判断映射中是否包含指定的key值
definfo=['id':
1,'name':
'Tom']
info.containsKey('id')//返回true
info.containsKey('score')//返回false
containsValue
判断映射中是否包含指定value值
definfo=['id':
1,'name':
'Tom']
info.containsValue('75')//返回false
info.containsValue('Tom')//返回true
get
根据key值获取对应的映射值
如果key不存在,返回指定的默认返回值,如果未指定默认值则返回null;如果存在key,返回对应的值
definfo=['id':
1,'name':
'Tom']
info.get('score')//返回null
info.get('score',70)//返回70
info.get('name')//返回Tom
keySet
获取当前映射的所有关键值,以数组返回,空映射返回[]
definfo=['id':
1,'name':
'Tom']
info.keySet()//返回[id,name]
values
获取当前映射的所有映射值,以数组返回,空映射返回[]
definfo=['id':
1,'name':
'Tom']
info.values()//返回[1,Tom]
size
返回映射中关键字与值映射的数目
definfo=['id':
1,'name':
'Tom']
info.size()//返回2
8.Groovy学习系列--正则表达式
正则表达式是在文本中寻找子字符串的一种模式。
1、定义正则表达式
Groovy中正则表达式定义是通过~’正则表达式’定义的
defregex=~’chese’
2、常用正则表达式
表达式
匹配意义
示例
^
行首。
匹配的字符必须以指定字符串开头
$
行尾。
与字符串的尾部或换行符之前的位置相匹配。
不包括换行符本身
.
匹配除换行符以外的任意一个字符
\w
字母和数字
[0-9A-Za-z]
\W
非字母和数字。
\w以外的单个字符
\s
空字符
[\t\n\r\f]
\S
非空字符
\d
数字
[0-9]
\D
非数字
[]
指定字符范围
如:
[0-9]
*
前面元素至少出现0次
+
前面元素至少出现1次
{m}
前面的元素出现m次
{m,}
前面的元素至少出现m次
{m,n}
前面的元素出现至少m次,至多n次
|
选择,匹配其中的任何一个
(a|b)*指a或b出现任意次
()
正则表达式的群组化
(ab)*指ab出现任意次
[\u4E00-\u9FA5]
汉字
[^\u4E00-\u9FA5]
非汉字
3、运算符
1)匹配操作符(==~)
用于检查字符串是否匹配返回true或false
如:
if("abc"==~/abc/){
println'true'
}
else{
println'flase'
}
2)查找操作符(=~)
用于在字符串中查找匹配的子字符串
defstring="id=12345"
defmatcher=string=~/id=/
defid=matcher.replaceAll('')
printlnid//运行结果为:
12345
9.Groovy学习系列--流程控制
流程控制
1、while语句
在执行while语句时,先计算condition值(一个布尔值),如果为真(true),则执行while语句中内嵌的语句。
循环一直执行下去直到condition值为假(false)。
语法
示例
输出结果
while(condition){
statement#1
statement#2
}
defLIMIT=3
defcount=1
while(count<=LIMIT){
println"Count:
${count}"
count+=1
}
count:
1
count:
2
count:
3
2、for语句
用于循环处理某个范围、集合(列表、映射或者数组)或字符串。
语法
示例
输出结果
for(variableinrange){
statement#1
statement#2
}
for(countin1..3){
println“count:
${count}”
}
count:
1
count:
2
count:
3
for(variableincollection){
statement#1
statement#2
}
for(countin[11,12]){
println“count:
${count}”
}
count:
11
count:
12
for(variableinstring){
statement#1
statement#2
}
for(letterin‘He’){
println“letter:
${letter}”
}
letter:
H
letter:
e
3、if语句
先判断条件表达式的值是否为真(true),如果为真则执行内嵌的复合语句,并会继续执行if语句后面的语句。
语法
示例
输出结果
if(condition1){
statement#1
}
elseif(condition2){
statement#2
}
else{
statement#3
}
defscore=65
defgrade=''
if(score>=70)
grade='A'
elseif(score>=60)
grade='B'
else
grade='C'
println"grade:
${grade}"
Grade:
B
4、switch语句
将表达式值与每个case表达式值进行比较,如果它与某个case表达式匹配,将执行从该表达式子句开始到switch结束的所有语句,如果没有匹配项,执行default。
语法
示例
输出结果
switch(expression){
caseexpression#1:
statement#1a
statement#1b
caseexpression#2:
statement#2a
statement#2b
......
default:
statement#Da
statement#Db
}
defn=2
switch(n){
case1:
println'One'
case2:
println'Two'
case3:
println'Three'
default:
println'Default'
}
Two
Three
Default
defn=1
switch(n){
case1:
println'One'
break
case2:
println'Two'
break
default:
println'Default'
break
}
One
defnum='1234'
switch(num){
case~'[0-9]{3}-[0-9]{4}':
println'One1'
break
case~'[0-9]{4}':
println'Two1'
break
default:
println'Default1'
break
}
Two1
5、break语句
用于改变循环语句和switch语句中的控制流程,在循环体内执行break语句时,将立即终止循环体最内层的循环。
示例
输出结果
for(kin1..5){
if(k>2&&k<4){
break
}
else{
println"value:
${k}"
}
}
value:
1
value:
2
6、continue语句
countinue语句是break语句的补充,仅限于在while和for循环中使用。
但使用countinue语句时,将结束本次循环,并跳转到离它最近的条件判断语句,以确保是否执行下一循环。
示例
输出结果
for(kin1..5){
if(k>2&&k<4){
continue
}
else{
println"value:
${k}"
}
}
value:
1
value:
2
value:
4
value:
5
原文:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- groovy 学习