>>500
課題2
public class HSParser {

public static java.math.BigInteger[] parse(String str) {
if (! str.matches("-?(0|[1-9]\\d*)--?(0|[1-9]\\d*)")) {
throw new RuntimeException("illegal number range format: " + str);
}
String[] strs = str.split("(?<=\\d)-");
java.math.BigInteger[] vals = new java.math.BigInteger[strs.length];
for (int i = 0; i < strs.length; i++) {
vals[i] = new java.math.BigInteger(strs[i]);
}
if (vals[0].compareTo(vals[1]) >= 0) {
throw new RuntimeException("illegal number range: " + vals[0] + " >= " + vals[1]);
}
return vals;
}

public static void main(String[] args) {
for (String str : args) {
for (java.math.BigInteger v : HSParser.parse(str)) {
System.out.println(v);
}
System.out.println();
}
}

}
値の桁数の制限がないようなので BigInteger にしているが問題なければintとかでも