Groovy02_字符串与循环

Posted 李樟清

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy02_字符串与循环相关的知识,希望对你有一定的参考价值。

1. 字符串

字符串
单引号与双引号的区别 (使用闭包时候惰性求值)
多行字符串
对字符串类型的一些扩展
(execute、find)


class lsn_2_0 

    static String test()
        // 这是java的写法
        //return "111"

        // 但是在Groovy当中,无论是我们的函数还是我们的闭包,
        // 我们不写return,他会默认把这个方法体(代码块)当中的最后一行作为一个返回值
        "111"
        "222"
    

    // (String[] args) 代表接收String[] 类型的参数
    // (args)   前面不写 代表能接收任意类型的参数
    static  void main (args)
//        println "Grovvy"
        // 1. 字符串   i 和 j 都是String类型  ,k 是char类型
        def k = 'a' as char
        def i = 'Groovy'
        def j = "Grovvy"
        println k.class         //  class java.lang.Character
        // 2. 字符串的拼接
        //      1. 用 + 拼接
        def z = "zekign" + i
        println z               // zekignGroovy
        //      2. 用 String.format   整形用%d char 用%c  stirng 用%s
        String.format("gr%doovy",9)
        println String.format("gr%doovy",9)     // gr9oovy
        println String.format("gr%soovy",i)     // grGroovyoovy
        println String.format("gr%coovy",k)     // graoovy
        //      3. 用$  跟Linux的shell脚本一样  只用双引号的时候才能用
        def a = 'a'
        def b = "Zek$aing"
        println b               // Zekaing
        //          闭包,就是可执行的代码块,跟函数一样可以接收参数
        //          在-> 前面定义我们的参数列表
        //          这个代码块会在我们使用到这个变量的时候执行
        def c = "Grov$->avy"  // 后面用到闭包在说
        a = '123'   // 惰性求值的方式
        println c               // Grov123vy

        println test()

        // 3. 多行字符串
        //      d java写法
        //      e  3个双引号中间写  要换行直接回车
        def d = "java\\nddd  groovy"
        def e = """java
eeee groovy"""
        println d
        println e

        // 4. Groovy为很多类都注入了很多方法
        //      4.1
        //      所以我们可以直接使用对象进行条件判断,例如
        "".asBoolean()
        //      4.2
        if("".asBoolean())  // 这种写法和 if("")  是一样的,他会自动调用asBoolean方法

        
        //      4.3 如果定义的是整形
        def f = 9
        f.asBoolean()
        //      4.4
        "cmd /c groovy -v".execute()  // window这样写,如果是Linux 或者 苹果系统  "groovy -v".execute()
        println "cmd /c groovy -v".execute().text  // Groovy Version: 2.4.14 JVM: 1.8.0_111 Vendor: Oracle Corporation OS: Windows 10

        println "groovy"[0]         // g
        println "groovy" - "vy"     // groo
    

2. 循环

IntRnage i..j(0..9)
times/downto/upto/step



// 循环

for (int i = 0; i<10;++i)
    print i+' '

// 0 1 2 3 4 5 6 7 8 9
println("")
for (i in new IntRange(0,9))
    print i+' '

// 0 1 2 3 4 5 6 7 8 9
println("")
for (i in new IntRange( 0 , 9 ,true))
    print i+' '

// 9 8 7 6 5 4 3 2 1 0
println("")
for (i in new IntRange(false,0,9))
    print i+' '

// 0 1 2 3 4 5 6 7 8
println("")
for (i in 0..9)
    print i+' '

// 0 1 2 3 4 5 6 7 8 9
println("")
def j = 0..9
println j.class
// class groovy.lang.IntRange
for (i in 0..<9)
    print i+' '

// 0 1 2 3 4 5 6 7 8
println("")
// 当我们定义一个闭包的时候,我们没有给他指定参数列
// 表的时候,他是默认可以接受一个参数的
// 这个参数我们就用it来接收他
10.times 
    print it + ' '

// 0 1 2 3 4 5 6 7 8 9
println("")

10.upto(15)
    print it + ' '

// 10 11 12 13 14 15
println("")
10.downto(5)
    print it + ' '

// 10 9 8 7 6 5
println("")
10.step(15,2)
    print it + ' '

// 10 12 14
println("")
10.step(6,-2)
    print it + ' '

// 10 8 6

以上是关于Groovy02_字符串与循环的主要内容,如果未能解决你的问题,请参考以下文章

Groovy06_Groovy方法扩展与脚本调用

Groovy05_Groovy方法调用与运算符重载

关于空间/时间的 Groovy 集合性能注意事项

python爬虫 正则表达式 re.finditer 元字符 贪婪匹配 惰性匹配

Python---迭代器,生成器,列表推导式

02_5if switch分支与循环语句