Java


簡単なインプット

小規模なプログラム、対話的なプログラムにおいて ユーザからの入力を受け取ることは重要なことです。 C言語では同様の場面でscanfを使います。 Rubyではgetsでしょうか。
では、Javaでは?
多くの入門書では、何重にもラップしてめんどくさいコードを書いてたった一行の入力を受け取っています。
これが私のJavaが嫌いな原因だったのですが、今は少しだけ楽に受け取ることができるのですね。
その"少しだけ簡単な方法"と、昔知った"型破りな方法"を紹介したいと思います。

001 002 003 004 005 006 007 008 009 010 011 012 013 014

import java.util.Scanner; //方法1 import javax.swing.*; //方法2 public class InputTest { public static void main(String[] args){ //1 : Scannerを使った文字列入力 Scanner scn = new Scanner(System.in); System.out.print("Input : "); System.out.println(scn.nextLine()); //2 : swingをつかった文字列入力 System.out.println(JOptionPane.showInputDialog("Input")); System.exit(0); } }

ポイント

方法1:Scannerを使う

この方法が使えるようになったのは確かJ2SE 5.0の頃からでしたか?たしか。
上のコードを見ると、Scannerの初期化でSystem.inを指定して、nextLine()メソッドを呼び出すことで 簡単に一行の入力を受け取っています。これは、入門書の面倒なコードよりもずいぶん短いです。
使うときはjava.util.Scannerをインポートしましょう。

方法2:ダイアログを使う

さて、CUIで簡単に入力できることが分かりました。これで十分にデバッグ等には使えます。
ですが、一応昔知った風変わりな方法についても紹介させてください。
この方法は少しだけJavaを好きにさせてくれました。少しだけ。
これは、上のコード例で示すようにswingのJOptionPaneを使います。 CUIなのにGUIで入力を行うってのは予想斜め上を行っていたので好きでした。
かなり短く入力できるでしょ?

付録

ソース

今回のソースをおいておきます。


プログラムに戻る