如何在表示整数的字符串上使用范围运算符?
当字符串表示大于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}
结果:
字符串范围 1
整数范围 1 2 3 4 五 6 7 8 9 10 11
我想保持代码简单,并尽可能避免使用过多的类型转换,因为我需要结果列表将数字包含为字符串。
答案 0 :(得分:2)
您需要进行类型转换,也许自定义范围是一个想法:
class CustomRange extends IntRange {
CustomRange(String start, String end) {
super(start.toInteger(), end.toInteger())
}
}