加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy Tip 10 Groovy语言对String的简化操作

发布时间:2020-12-14 17:00:04 所属栏目:大数据 来源:网络整理
导读:?????????? Groovy Tip 10 Groovy语言对String的简化操作 ? 在Groovy语言中,对String对象的操作就像操作List对象一样的方便。比如我们在Java语言中,对String对象的操作用得比较多的是substring方法。如下: ?????? String str = "abcdefg" ; ?????? ??? Sy
?????????? Groovy Tip 10 Groovy语言对String的简化操作
?
在Groovy语言中,对String对象的操作就像操作List对象一样的方便。比如我们在Java语言中,对String对象的操作用得比较多的是substring方法。如下:
?????? String str = "abcdefg" ;
??????
??? System. out .println(str.substring(1,3));
?
结果为:
bc
?
这里有两点不便:一是 substring 方法和参数的繁琐;二是它的最后一个参数,比如 substring(1,3) 得到的结果不是 str 对象的第一位到第三位,而是第二位。这和我们的直觉不符,常常导致我们出错。
而在 Groovy 语言里,上面的代码被改造为下面的样子:
??? ? def str = 'abcdefg'
??? ?
? println str[ 1 .. 2 ]
?
结果为:
bc
?
看到了吧,像数组一样操作 String 对象, str[1..2] 得到的就是第一位到第二位的值,符合我们的习惯。
当然,你还可以取 String 对象中的任意字符:
??? ? def str = 'abcdefg'
??? ?
? println str[ 1 , 3 , 5 ]
?
结果是:
bdf
?
很棒吧!
既然操作 String 对象就像操作 List 对象一样,那么 List 类的一些方法如 each String 对象就可以直接拿来使用了。
??? ? def str = 'abcdefg'
??? ?
??? ?str. each {
?????? ? print it
?????? ? print ','
?}
?
结果为:
a,b,c,d,e,f,g,
?
??? ? def str = 'abcdefg'
??? ?
? println str.contains( 'd' )
?
结果为:
true
?
等等。其他方法,如“ find ”、“ findAll ”、“ every ”、“ any ”等方法都可以在 String 对象中使用。
如果你不喜欢 str 对象后面的“ fg ”两个字符,想把他们从 str 对象中删掉,在 Java 语言中,你必须这样做:
?????? String str = "abcdefg" ;
??????
?????? str = str.substring(0,5);
??????
??? System. out .println(str);
?
而在 Groovy 语言中,你可以这样做:
??? ? def str = 'abcdefg'
??? ?
??? ?str = str- 'fg'
??? ?
? println str
?
当然,你也可以把 str 对象中的“ ab ”减去:
??? ? def str = 'abcdefg'
??? ?
??? ?str = str- 'ab'
??? ?
? println str
?
结果为:
cdefg
?
如果在 str 对象中减去“ st ”呢:
??? ? def str = 'abcdefg'
??? ?
??? ?str = str- 'st'
??? ?
? println str
?
结果为:
abcdefg
?
如果在 str 对象中减去“ be ”呢:
??? ? def str = 'abcdefg'
??? ?
??? ?str = str- 'be'
??? ?
? println str
?
结果为:
abcdefg

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读