`
leon1509
  • 浏览: 535678 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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
分享到:
评论
1 楼 guxuede 2015-01-28  

相关推荐

    Groovy 2 Cookbook (英文版)

    3. Groovy 2 Cookbook提供了大量实用的Groovy编程技巧,这表明书中内容可能包括Groovy基础语法、对象和元编程、集合操作、脚本执行、以及Groovy与Java的互操作性等方面的知识。 4. 书籍明确强调Groovy 2版本,这...

    groovy in action.pdf

    这一部分提供了许多实用的Groovy编程小贴士和技巧,帮助开发者提升编程效率和代码质量。 #### 单元测试与Groovy 单元测试是软件开发不可或缺的一部分,Groovy提供了强大的单元测试框架,这部分内容介绍了如何利用...

    Groovy Script 入门

    ### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向...掌握Groovy的基础知识和进阶技巧,对于提升开发效率和个人技能都大有裨益。希望本文能够帮助大家更好地理解和使用Groovy脚本。

    eclipse安装groovy插件的步骤

    ### Eclipse 安装 Groovy 插件的详细步骤与使用指南 #### 一、Groovy 插件的安装 为了能够在 Eclipse 中使用 Groovy 进行开发,首先需要安装 ...希望本文能帮助您更好地理解和掌握 Groovy 在 Eclipse 中的应用技巧。

    Groovy IN ACTION

    《Groovy in Action》是一本深入探讨Groovy编程语言的专业书籍,主要面向已经熟悉Java的开发者,旨在帮助他们理解和掌握Groovy的特性和优势。Groovy是Java平台上的动态脚本语言,它融合了多种语言的特性,如Python、...

    实战groovy.rar

    进一步探索Groovy的高级特性,如Meta Object Protocol (MOP)、GroovyShell、 Grape依赖管理系统等,提升编程技巧。 七、社区资源与工具 积极参与Groovy社区,利用官方文档、Stack Overflow、Groovy Slack等平台获取...

    groovy速查手册

    Groovy强大的元编程特性使得开发者能够编写高度灵活和动态的代码。Groovy提供了丰富的API来操作运行时的对象模型,如使用反射来动态调用方法或获取对象的属性。 #### 七、实用技巧 - **命令行工具**:Groovy提供了...

    Groovy and Grails Recipes(清晰PDF)

    - 网络编程技巧 #### 二、Grails by Example **10. Getting Started with Grails** - **介绍**: 介绍了如何开始使用Grails框架。 - **核心知识点**: - Grails安装过程 - 创建第一个Grails应用 - Grails项目的...

    Groovy in Action源代码

    《Groovy in Action》是一本深受开发者喜爱的书籍,它深入浅出地介绍了Groovy编程语言,涵盖了Groovy的基础语法、高级特性以及在实际开发中的应用。源代码是书籍内容的实践部分,对于读者理解Groovy语言并进行实战...

    groovy

    在描述中提到的链接指向了一篇博客,虽然具体内容未提供,但通常这类资源会介绍Groovy的基础知识、使用场景或特定的编程技巧。根据“源码”和“工具”的标签,我们可以推测这篇博客可能涉及到Groovy的源码解析或者与...

    Groovy 2 Cookbook

    通过阅读本书,读者不仅可以掌握 Groovy 2 的核心概念和编程技巧,还能学会如何有效地利用 Groovy 解决实际工作中的各种问题。无论您是 Groovy 的初学者还是有一定经验的开发者,《Groovy 2 Cookbook》都将是您宝贵...

    Groovy and Grails Recipes.pdf

    ### Groovy编程语言 **1. Groovy简介** - **定义**:Groovy是一种灵活、面向对象的编程语言,运行在Java平台上。它兼容现有的Java代码,并且可以调用Java类库中的任何类。 - **特点**: - **动态性**:Groovy...

    Groovy学习笔记 PDF版

    书中的例子和练习将帮助你深入理解Groovy的强大功能,并提升你的编程技巧。 总之,Groovy为Java开发者提供了一个更加灵活和高效的工具,无论你是想简化日常的脚本任务,还是希望构建复杂的Web应用程序,学习Groovy...

    Grails&Groovy学习资料

    Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,提供了丰富的功能,而Groovy则是一种面向Java平台的动态编程语言,它的设计目标是提高开发者的生产力。 Groovy语言: Groovy是Java平台上的一个...

    Groovy 学习资料

    本学习资料将带你深入了解Groovy的魅力,并逐步掌握其核心概念与实践技巧。 1. **Groovy简介** Groovy是由James Strachan于2003年创建的,它的设计目标是简化Java的语法,提高开发效率。Groovy可以直接调用Java的...

    Groovy in action

    ### Groovy in Action:深入解析Groovy编程语言 #### 一、引言 《Groovy in Action》是一本详尽介绍Groovy编程语言的书籍,由Dierk König撰写,并得到了Andrew Glover、Paul King、Guillaume Laforge以及Jon ...

Global site tag (gtag.js) - Google Analytics