Groovy 字符串整数范围
Groovy string integer range
如何在表示整数的字符串上使用范围运算符?
真正的问题出现在字符串表示大于 9 的整数时。范围会将字符串视为数字列表,并且仅使用第一个而不是将整个字符串转换为整数。
String start = '1'
String end = '11'
println "Range over strings"
(start..end).each{println it}
println "Range over integers"
(start.toInteger()..end.toInteger()).each{println it}
结果:
Range over strings
1
Range over integers
1
2
3
4
5
6
7
8
9
10
11
我希望保持代码简单,并尽可能避免使用过多类型转换,因为我需要结果列表以字符串形式包含数字。
您需要进行类型转换,也许自定义范围是个好主意:
class CustomRange extends IntRange {
CustomRange(String start, String end) {
super(start.toInteger(), end.toInteger())
}
}
如何在表示整数的字符串上使用范围运算符?
真正的问题出现在字符串表示大于 9 的整数时。范围会将字符串视为数字列表,并且仅使用第一个而不是将整个字符串转换为整数。
String start = '1'
String end = '11'
println "Range over strings"
(start..end).each{println it}
println "Range over integers"
(start.toInteger()..end.toInteger()).each{println it}
结果:
Range over strings 1
Range over integers 1 2 3 4 5 6 7 8 9 10 11
我希望保持代码简单,并尽可能避免使用过多类型转换,因为我需要结果列表以字符串形式包含数字。
您需要进行类型转换,也许自定义范围是个好主意:
class CustomRange extends IntRange {
CustomRange(String start, String end) {
super(start.toInteger(), end.toInteger())
}
}