如何使用 : by groovy 脚本分隔数字
how to seperate numbers using : by groovy script
考虑一个数字 12345678。
我需要使用 groovy 脚本输出 12:34:56:78。
我试过使用 .split()
这是执行您描述的操作的代码:
def number = "12345678"
def result = number.collect().collate(2).collect{it.join('')}.join(':')
数字定义为字符串 - 如果您的数字是数字,只需使用 .toString()
将其转换为字符串
number.collect()
将字符串转成列表
.collate(2)
创建大小为 2
的子列表
.collect{it.join('')}
加入子列表的元素
.join(':')
加入所有带有 :
字符的子列表
也许它不是您所需要的,但它应该能为您提供一个良好的起点。 :-)
另一个使用正则表达式的解决方案。
t = "123456789" // yes, i've extended to 9 to show what happens
(t =~ /(?<=(\G.{2}))/).collect{ it[1] }.join(":")
==> 12:34:56:78
正如在对您的问题的评论中指出的那样,您必须决定当字符数不是偶数时要做什么,正如您在我的示例中看到的那样,它会删除最后一个字符,因为它按双字符.
考虑一个数字 12345678。
我需要使用 groovy 脚本输出 12:34:56:78。
我试过使用 .split()
这是执行您描述的操作的代码:
def number = "12345678"
def result = number.collect().collate(2).collect{it.join('')}.join(':')
数字定义为字符串 - 如果您的数字是数字,只需使用 .toString()
number.collect()
将字符串转成列表
.collate(2)
创建大小为 2
.collect{it.join('')}
加入子列表的元素
.join(':')
加入所有带有 :
字符的子列表
也许它不是您所需要的,但它应该能为您提供一个良好的起点。 :-)
另一个使用正则表达式的解决方案。
t = "123456789" // yes, i've extended to 9 to show what happens
(t =~ /(?<=(\G.{2}))/).collect{ it[1] }.join(":")
==> 12:34:56:78
正如在对您的问题的评论中指出的那样,您必须决定当字符数不是偶数时要做什么,正如您在我的示例中看到的那样,它会删除最后一个字符,因为它按双字符.