Groovy编程技巧

1. 数组定义

def str = ['.jpg', '.bmp', '.gif', '.png' ] as String[]


2. 查看某对象的类名

println xxxobj.class.simpleName


3. 字符串转为数组
(1)

println "[1,2,3,4,5]".tokenize( "[, ]" ).collect { it as Integer }

输出:[1, 2, 3, 4, 5]
(2)

println "1,2,3,4,5".tokenize( "," ).collect { it as Integer }

输出:[1, 2, 3, 4, 5]

4. 判断一个对象是否是某个类的实例,除了使用JAVA的instanceof以外,还可以:
println "test" in String

输出:true

5. 格式化日期

def x = new Date()
println x.format("yyyy年mm月dd日 hh:MM:ss")


输出:2009年24月24日 03:12:06


def x = new Date()
println x.format("yyyy年mm月dd日 HH:MM:ss")

输出:2009年24月24日 15:12:06

6. 字符串查找
 
def words = ['bob', 'alpha', 'rotator', 'omega', 'reviver']

def bigPalindromes = words.findAll {w -> w == w.reverse() && w.size() > 5}
println bigPalindromes

输出:[rotator, reviver]

7. 字符串反转


println 'string'.reverse()
def string = 'Yoda said, "can you see this?"'

def revwords= string.split(' ').toList().reverse().join(' ')

//assert revwords== 'this?" see you "can said, Yoda'

println revwords


输出:
=======
gnirts
this?" see you "can said, Yoda
=======

8. 字符串转化为字符数组


def str = "an apple a day"
println str.toList().unique().sort().join()


输出:adelnpy

9. 字符串加减操作


def s = 'hippopotamus'
println s - 'hippo' - 'mus' + 'to'


输出:potato

10. 关于字符串:

简单字符串可以用单引号和双引号, 但如果使用GString, 则必须使用双引号. 比如 “$foo, hello world”

多行字符串则可以使用 “”" (3个双引号), 例如:

def name = "snowfox"
def text = """\
hello there ${name}
how are you today?
"""
println text

如果对这个text进行输出,会发现输出是按原样式输出的,即换行符也输出. 这在处理类似 HTML 代码时时特别有用的.

11. 右边截取字符串

def sno = "10207818"
println sno[-4..-1]

输出:7818

12. 字符串左侧补位

def sno = "10207818"
println sno[-4..-1].padLeft(8, "*")

输出:****7818
注:padRight是右侧补位,center是“如果字符数量小于指定参数,则两边补第二个参数”
参考:http://chenfeng0104.iteye.com/blog/606153

13. 用Base64加解密
def test_str = "我是中国人"
def authString = test_str.getBytes().encodeBase64().toString()
println "经Base64加密后:${authString}"
println "由Base64解密后:${new String(authString.decodeBase64())}"


14. 金额转换-将元转换为分,有小数保留小数,无小数则显示整数

def x = "0.1" as Double
BigDecimal b = new BigDecimal(Double.toString(x*100)).setScale(0, BigDecimal.ROUND_HALF_UP)
println b


15. 最简单的连接数据库打印数据
import groovy.sql.Sql
def sql = Sql.newInstance("jdbc:oracle:thin:@10.14.3.112:1521:hosp50", "scott", "tiger")
sql.eachRow("select * from function_info start with fi_parent_id=0 connect by prior fi_id=fi_parent_id"){println it}


16. 一次性转换字符数组为Long数组

def ids = (params.id)
这个数组里面数据都是 String的 我想转换成long型的
答案:

ids.collect{it.toLong()}


17.在Java中,要想遍历一组人并收集人名。得这样写:

List names = new ArrayList();
for (Iterator iterator = people.iterator(); iterator.hasNext();) {
Person person = (Person) iterator.next();
names.add(person.getName());
}
System.out.println(names);

用Groovy,可以这么写:

def names = people*.name
println names

呵呵,简单吧。还可以这样写:

def names = people.collect {it.name}
println names


18. 处理JSON

import groovy.json.JsonBuilder
import groovy.json.JsonOutput

def json = new JsonBuilder()
json.state{
capital "Denver"
majorCities "Denver", "Colorado Springs", "Fort Collins"
}
println json

//JsonBuilder也有类似的方法,JsonBuilder.toPrettyString(),效果相同
println JsonOutput.prettyPrint(json.toString())


输出:

{"state":{"capital":"Denver","majorCities":["Denver","Colorado Springs","Fort Collins"]}}
{
"state": {
"capital": "Denver",
"majorCities": [
"Denver",
"Colorado Springs",
"Fort Collins"
]
}
}

19. 数字求和

def x = [8878,3034,152021,75163,8000,992,183,326,1000].sum()
println x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值