簡體   English   中英

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}

結果:

范圍超過字符串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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM