import java.util.regex.Matcher
import java.util.regex.Pattern
// http://codekata.pragprog.com/2007/01/kata_four_data_.html
//println "Starte Groovy Kata - WeatherMunger"
class WeatherData
{ def day;
int max,
min;
int spread
() { max -
min }}
data =
[]
def pattern = ~/\s+
(\d+
)\D+
(\d+
)\D+
(\d+
).
*/
def file =
new File("weather.dat")
assert file.
exists()
file.
eachLine{ line ->
matcher = pattern.
matcher(line
);
if (matcher.
matches()) {
def day = matcher.
group(1)
int max =
Integer.
valueOf(matcher.
group(2))
int min =
Integer.
valueOf(matcher.
group(3))
data
<< new WeatherData
(day: day,
max:
max,
min:
min)
}
// andere Zeilen werden ignoriert...
//else { println "Zeile konnte nicht gelesen werden: " + line }
}
assert data.
size() ==
30
data.
sort { it.
spread() }.
each{
println String.
format("Tag:%3s Spread:%3s Min:%3s Max:%3s", it.
day, it.
spread(), it.
min, it.
max)
}
//println "Groovy Kata - WeatherMunger - erfolgreich beendet!"