,该怎么办错了:Groovy的数字字符串比较
assert 'foo' == 'foo' //PASS
assert '500' == '500' //PASS
assert '500' < '1000' //FAIL <-- Supposed to pass
assert '500' <= '1000' //FAIL <-- Supposed to pass
assert '1000' > '500' //FAIL <-- Supposed to pass
assert '1000' >= '500' //FAIL <-- Supposed to pass
它是一个可定制的 “条件” 的对象:
class Condition {
static def compareClosure = [
'==' : { a, b -> a == b},
'!=' : { a, b -> a != b},
'<' : { a, b -> a < b},
'<=' : { a, b -> a <= b},
'>' : { a, b -> a > b},
'>=' : { a, b -> a >= b}
]
String comparator
def value
Condition(String comparator, String value) {
this.value = value
this.comparator = comparator
}
boolean isSatisfiedBy(def value) {
compareClosure[comparator](value, this.value)
}
}
所以
assert new Condition('<=', '1000').isSatisfiedBy('500') //FAIL
有没有一种办法在不将值转换为数值类型的情况下执行此操作
这是在排序中使用? – 2013-03-21 22:26:47
http://stackoverflow.com/questions/1262239/natural-sort-order-string-comparison-in-java-is-one-built-in – 2013-03-21 22:52:19
我添加了一些更多的信息。这不是为了订购目的 – Thermech 2013-03-22 17:05:49