[英]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}
結果:
范圍超過字符串1
整數范圍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())
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.