私が今までにといたプログラミングコンテストの問題の回答例です。
実行する時は入力ファイルをプログラムと同じフォルダにおいて下さい。
入出力関連や、汎用データ構造の使い方など、プログラミングコンテストの問題を解くにあたってよく使うと思われるAPIの使用方法をまとめました。
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String buf = reader.readLine();
StringTokenizer tokenizer = new StringTokenizer(buf);
while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer tokenizer = new StreamTokenizer(reader);
LOOP:
while (true) {
int type = tokenizer.nextToken();
switch (type) {
case StreamTokenizer.TT_WORD:
System.out.println("word:"+tokenizer.sval);
break;
case StreamTokenizer.TT_NUMBER:
System.out.println("number:"+tokenizer.nval);
break;
case StreamTokenizer.TT_EOF:
break LOOP;
case '\'':
case '"':
System.out.println("String literal:" + tokenizer.sval);
break;
default:
System.out.println("other " + (char)type);
}
}
なお、StreamTokenizerは、デフォルトでC/C++やJavaのソースコードを読むのに適した設定になっているので、ソースコードを読む時や、数字のみ・文字列のみなどの単純なデータの時以外はメソッドを呼び出して設定を変える必要がありそうです。
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(123.456)); // 123.47
定義したクラスのインスタンスをソートする場合、comparableをインプリメントしておく。そうでない場合、Comparatorをインプリメントするクラスを作成し、そのインスタンスを渡す。
SortedList等を使う場合も同様。
何もしなかった場合、同一インスタンスかどうかのみで判断されるので、期待通りの動作をしない場合がある。
最終更新日:2003/10/26