def number = /\W+
(\d+
)/
def eintraege =
[]
new File('weather.dat').
text.
eachMatch(/
(?m
)^$
{number *
3}.
*/
){ all, tag,
max,
min ->
def spread =
max.
toInteger() -
min.
toInteger()
eintraege
<< [tag:tag, spread:spread,
min:
min,
max:
max]
}
eintraege
.
sort{ it.
spread }
.
each{
def format = it.
keySet().
collect{ format
(it
) +
':%3s'}.
join(' ')
def values = it.
values()*.
toString()
println String.
format(format, *values
)
}
def format
(label
) { label
[0].
toUpperCase() + label
[1..
-1] }