Groovy代码示例 – 字符串
groovy字符串基本用法
groovy字符串的定义以及常用方法的使用示例
def name = 'John' // 定义字符串
println name //打印字符串
//获取字符串的长度
println 'The quick brown fox jumps over the lazy dog'.length() // 43
//获取字符串中子字符串的位置
println 'Non-Blocking IO'.indexOf("o") // 1
//字符串的截取
println 'AngularJS Service vs Factory vs Provider'.substring(32) // Provider
//字符串的替换
println 'C# is the best'.replace('C#', 'Java') // Java is the best
//字符串转大写
println 'I am very angry'.toUpperCase() // I AM VERY ANGRY
字符串拼接与GString
def name = 'John'
def surname = 'Doe'
//字符串拼接
println 'Hello ' + name + ' ' + surname // Hello John Doe
//GString的使用
def name = 'John'
def surname = 'Doe'
//${varName} 变量占位符
println "Hello ${name} ${surname}" // Hello John Doe
println 'Hellow ${name} ${surname}' // Hellow ${name} ${surname}
字符串操作符
groovy字符串的加减乘操作符使用代码示例
//“-” 减操作
println 'I am very long sentence' - 'very long ' // I am sentence
//“+” 加操作
println 'I will ' + 'be very long sentence' // I will be very long sentence
//“*” 乘操作
println 'Ice ' * 2 + ' baby' // Ice Ice baby
使用三个双引号定义多行文本,如下例所示:
def multiLine = """
Hi everyone, I will
write lots of things here
because I am not restricted with
one line. I am capable of
multi lines
"""
println multiLine
也可以支持三个单引号的多行文本定义,如下例所示:
def multiLine1 = '''
Hi everyone, I will
write lots of things here
because I am not restricted with
one line. I am capable of
multi lines
'''
println multiLine1
其中,通过'''
定义的文本不支持变量占位符${varName}
字符串分割
//groovy的字符串分割比较智能,会自动判断空格或tab字符分割
def text = 'Hello World'
//支持空格分割
println text.tokenize() // [Hello, World]
def textWithComma = 'Hello,World'
//使用逗号分割
println textWithComma.tokenize(',') // [Hello, World]
//支持tab分割
def textWithTab = 'Hello World'
println textWithTab.tokenize()
字符串截取substring
字符串截取需要经常使用到,在groovy中我们可以通过多种方式截取字符串。
1、使用substring方法,同java中的字符串截取
def log = "Exception on saving user with username:johntheripper"
def username = log.substring(log.lastIndexOf(":") + 1, log.length())
println username // johntheripper
def usernameWithoutEndIndex = log.substring(log.lastIndexOf(":") + 1)
println usernameWithoutEndIndex // johntheripper
2、使用subSequence方法,也是Java中的原生方法
def log = "Exception on saving user with username:johntheripper"
def username = log.subSequence(log.lastIndexOf(":") + 1, log.length())
println username // johntheripper
3、groovy风格的字符串截取
接下来我们可以了解到groovy风格的字符串截取。
def text1 = "My last character will be removed soon"
println text1[0..-2] // My last character will be removed soo
def text2 = "My first word will be removed soon";
println text2[3..-1] // first word will be removed soon
def text3 = "noos em daer lliw uoy ,tneitap eB"
println text3[-1..0] // Be patient, you will read me soon
可以看到,groovy风格的字符串截取既简单又容易理解,通过[]
号方式定义截取方式。比如0..5
代表着索引号从0到5的字符组成的字符串。索引号可以是负数,如果结束索引号为负数则表明从尾部开始截取。如果起始索引号为负数,则表明是反向截取,截取的字符串也是反序的。
4、使用getAt方法截取字符串
def text1 = "crazy fox jumps over lazy dog"
println text1.getAt(0..(text1.length() - 5)) // crazy fox jumps over lazy
def text2 = "keep calm and carry on"
println text2.getAt(-1..5) // no yrrac dna mlac
getAt同[]
截取是一致的,也同样支持负数。
5、字符串减法操作
def text1 = "Sorry, I need to separate from you"
println text1 - " you" // Sorry, I need to separate from
def text2 = "Minus string usage"
println text2.minus(" usage") // Minus string
可以使用减法操作从字符串中去掉指定字符串。
在groovy中字符串的截取是非常方便的,你既可以像使用java那样去使用也可以使用groovy风格的语法截取字符串。
格式化输出字符串
groovy中格式化字符串的方式与java类似,参考以下示例代码:
def x = 66
def res = sprintf("value: %s", x) // 作为字符串
println(res)
println(sprintf("value: %d", x)) // 作为数字
println(sprintf("value: %c", x)) // 作为字符
// 使用0补齐
printf('d\n', x)
println( sprintf('d', x) )
// 指示参数位置
names = ['First', 'Second', 'Third', 'Fourt']
println( sprintf('%2$s %3$s %3$s %1$s', names) )
类似的printf的示例代码如下:
def v = 65
printf("<%s>\n", v); // <65>
printf("<s>\n", v); // < 65>
printf("<%-10s>\n", v); // <65 >
printf("<%c>\n", v); // <A>
printf("<%d>\n", v); // <65>
printf("<d>\n", v); // <00065>
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/05/06/groovy-code-example-string/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论