2011-05-13 57 views
26

我有一个18个字符的字符串,我想从字符2-8。在python我可以这样做:切片groovy中的字符串

sliceMe = "nnYYYYYYnnnnnnnnnn" 
print sliceMe[2:8] 

打印

YYYYYY 

我正在寻找一种方式做同样的事情在Groovy中,和每一个解释是很长的。在groovy(或者Java)中这样做的优雅接受方式是什么?

回答

40
groovy:000> sliceMe = "nnYYYYYYnnnnnnnnnn" 
===> nnYYYYYYnnnnnnnnnn 
groovy:000> sliceMe[2..7] 
===> YYYYYY 

注意在长度的差异是1减少。

+14

或'sliceMe [2 .. <8]'如果你想提供的第一个字符的索引排除像python – ataylor 2011-05-13 22:41:56

+2

保留记住可能会发生“索引越界” – 2014-12-04 06:35:09

+4

'“abcz”。[1 ..- 1]' - >“** bcz **”;'“abcz”。[1 ..- 2]' - >“** bc **” – will 2016-10-25 01:54:17

6

您继承关闭String的所有Java方法,所以sliceMe.substring(2,7)应该做的伎俩。

+0

谢谢。在没有编程java的情况下学习groovy会导致我失去一些有趣的道路。 – Mikey 2011-05-13 22:36:54

+1

既然如此,当您对如何在Groovy中使用某个对象做些什么的问题时,您可以随时查看java中的对象 - groovy对象会添加其他方法,但java方法仍然存在。 – 2011-05-13 22:39:01

+2

是啊我的问题是谷歌搜索错误因为你们是java的人不叫它切片:( – Mikey 2011-05-13 22:40:11

3

为了将来的参考,如果您不清楚Python与Groovy(或其他语法)编写的内容有什么不同,那么您可以比较“Programming Language Examples Alike Cookbook”字符串方法。

这里是切片Python字符串http://pleac.sourceforge.net/pleac_python/strings.html

这里是切片常规字符串:http://pleac.sourceforge.net/pleac_groovy/strings.html

检查表的内容,如果你需要看其他的比较,它是一个很好的参考。

+0

很好的参考,但看起来很难浏览... – 2014-07-24 13:19:08

+0

我更喜欢[Rosetta代码](http://rosettacode.org)。 ://rosettacode.org/wiki/Substring/Top_and_tail – 2017-10-11 18:54:16