小規模なプログラム、対話的なプログラムにおいて
ユーザからの入力を受け取ることは重要なことです。
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); } } |
この方法が使えるようになったのは確かJ2SE 5.0の頃からでしたか?たしか。
上のコードを見ると、Scannerの初期化でSystem.inを指定して、nextLine()メソッドを呼び出すことで
簡単に一行の入力を受け取っています。これは、入門書の面倒なコードよりもずいぶん短いです。
使うときはjava.util.Scannerをインポートしましょう。
さて、CUIで簡単に入力できることが分かりました。これで十分にデバッグ等には使えます。
ですが、一応昔知った風変わりな方法についても紹介させてください。
この方法は少しだけJavaを好きにさせてくれました。少しだけ。
これは、上のコード例で示すようにswingのJOptionPaneを使います。
CUIなのにGUIで入力を行うってのは予想斜め上を行っていたので好きでした。
かなり短く入力できるでしょ?
今回のソースをおいておきます。