`
leon1509
  • 浏览: 527250 次
  • 性别: 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文件技巧.docx

    软件项目的可扩展性和动态维护性是非常重要的,例如在微服务的网关动态过滤器中,要实现过滤器的动态更新而不影响项目的持续运行,就需要借助groovy的动态编译功能,而这个功能是通过...本文论述了解决这个问题的技巧。

    Groovy高效编程

    Groovy语言。 里面详细介绍了一些很有意思的方法。

    groovy入门编程

    groovy入门 groovy入门 groovy入门 groovy入门groovy入门groovy入门

    [Groovy] Groovy 2 编程 (英文版)

    [Pragmatic Bookshelf] Groovy 2 编程 (英文版) [Pragmatic Bookshelf] Programming Groovy 2 Dynamic Productivity for the Java Developer (E-Book) ☆ 出版信息:☆ [作者信息] Venkat Subramaniam [出版机构...

    Groovy入门经典.pdf

     本书是有关Groovy的第一本正式出版物,作者KennethBarclay和JohnSavage介绍了Groovy开发的所有主要领域,并解释了这种创新性的编程语言给Java平台赋予的动态特性。阅读本书只要求具备Java编程的一般性知识。不管你...

    Groovy 入门学习

    适合想了解groovy 编程开发的人员 Groovy - hellworld Groovy - 变量 Groovy - 静态import Groovy - 字符串 Groovy - 分支结构语句 Groovy - 循环结构语句

    Groovy in Action 中文版

    《Groovy in Action》是Groovy编程的综合指南,它向Java开发者介绍了Groovy提供的新的动态特性。为了呈现《Groovy in Action》,Manning再次从源头工作,与包括Groovy项目团队成员和经理在内的专家作者团队合作。其结果...

    Groovy语法系列教程之注释(一).pdf

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

    Groovy编程入门攻略

    主要介绍了Groovy编程入门攻略,Groovy是一种同样使用Java虚拟机的动态语言,需要的朋友可以参考下

    Groovy语法系列教程之关键字和标识符(二).pdf

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

    Groovy语法系列教程之集合(六)【完结】.pdf

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

    Groovy入门经典

    , 本书是有关Groovy的第一本正式出版物,作者Kenneth Barclay和John Savage介绍了Groovy开发的所有主要领域,并解释了这种创新性的编程语言给Java平台赋予的动态特性。阅读本书只要求具备Java编程的一般性知识。不管...

    Groovy v2.4.13官方版

     Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 ...

    java 动态脚本语言 精通 Groovy

    java 动态脚本语言 精通 Groovy

    精通 Groovy--下一代开发语言

    Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...

    Groovy语法系列教程之字符串(三).pdf

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

    Groovy语法系列教程之布尔(五).pdf

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

Global site tag (gtag.js) - Google Analytics