3.3 字符串

 3.3.1 字符串的常用定义方式

(1)单引号定义方式

(2)双引号定义方式

**(3)三引号定义方式

package com.msb.test01

//单引号形式定义字符串:等价于Java中双引号的定义方式:
def str1 = 'hi groo\nvy1'
println str1
println str1.class //class java.lang.String

//双引号形式定义字符串:
def str2 = "hi groovy2"
println str2
println str2.class //class java.lang.String

//三引号形式定义字符串:
def str3 = '''hi groovy3'''
println str3
println str3.class  //class java.lang.String

//三种方式区别在哪里:
//用单引号形式定义字符串,那么字符串的格式需要自己去控制,比如加:转义字符
//用三引号的形式,我们可以直接在字符串中定义格式:
//如果想要写的形式和展示形式一样,可以在第一个三引号后加入\
def str4 = '''\
hi
groovy4'''
println str4

//双引号形式的字符串:可扩展字符串:
def str5 = "groovy5"
def str6 = "hi ${str5}"  //拼接变量
println str6 //hi groovy5
println str6.class //class org.codehaus.groovy.runtime.GStringImpl

//拼接表达式:可扩展表达式融入到字符串中去
def str7 = "100 + 100 = ${100 + 100}"
println str7
println str7.class


//总结:双引号形式定义用的最多 - 因为可扩展特性

//String和GString使用的时候不用互相转化:
//验证:
def str8 = test(str6)//GString类型作为实参传入test方法中,返回String类型
println str8
println str8.class
//定义方法:
String test(String s){
    return s
}

 

3.3.2 字符串的常用方法

**(1)可直接使用java.lang.String中的方法:

```
package com.msb.test01

def str1 = "higroovy"
println "字符串的长度为:" + str1.length()
println "字符串是否为空:" + str1.isEmpty()
println "获取字符串的下标对应的字符为:" + str1.charAt(2)

def str2 = "higroovy"
println "判断两个字符串是否相等:" + str1.equals(str2)
println "字符串从固定位置截取:" + str1.substring(3)
println "字符串从区间位置截取:" + str1.substring(2,4)
println "替换字符串为新字符串:" + str1.replace('o', 'O')

def str3 = "a-b-c-d-e-f"
def split = str3.split("-")
println "按照指定的字符串进行分裂为数组的形式:" + split

def str4 = "higroovy"
println "转大写字母:" + str4.toUpperCase()
println "转小写字母:" + str4.toUpperCase().toLowerCase()

def str5 = "  hi groovy  "
println "去除收尾空格:" + str5.trim()

def str6 = "a"
def str7 = "b"
println "字符串的比较:" + str6.compareTo(str7)
```

**(2)使用org.codehaus.groovy.runtime.StringGroovyMethods中方法:**

```
package com.msb.test01

def str1 = "higroovy"
println "以str1字符串为中心在两侧用空格进行填充为指定长度:" + str1.center(12)
println "以str1字符串为中心在两侧用字符a进行填充为指定长度:" + str1.center(12,'a')

println "在str1的左侧进行填充:" + str1.padLeft(10,'a')

def str2 = "hellogroovy"
def str3 = "groovy"
println "减法操作:去掉重复内容:" + str2.minus(str3)

def str4 = "higroovy"
println "字符串的逆转/倒叙:"+ str4.reverse()

println "首字母大写" + str4.capitalize()

def str5 = "123"
println "类型的转换:" + str5.toInteger().class
```

 

**(3)Groovy中新增的操作符

//操作符-进行比较
def str6 = "a"
def str7 = "b"
println str6 > str7  //false

//操作符:获取字符串指定下标上的字符:
def str8 = "groovy"
println str8[1]
println str8[2..3] //oo

//操作:减法操作:
def str9 = "hellogroovy"
def str10 = "groovy"
println str9 - str10

 

posted @ 2023-02-23 10:31  CodeWhisperer001  阅读(31)  评论(0编辑  收藏  举报