现代的程序都使用GUI收集用户的输入,编写这种界面的程序需要使用较多的工具与技术,其实Java的API里有简单的输入方法,而且有控制台就可以实现.我们的主角就是:Scanner
要想通过控制台进行输入,首先要构造一个Scanner对象,它附属于"标准输入流"System.in
Scanner in = new Scanner(System.in);
现在我们就可以使用Scanner类的各种方法了,eg:
System.out.println("What's your name?");
String name = in.nextLine();
在这里使用nextLine方法的主要原因是输入行中可能包含空格.如果读取的是一个单词,则可调用
String firstName = in.next();
类似的,输入浮点数可用nextDouble方法
看我们的简单程序实现:
import java.util.*;//Scanner位于util包
public class HelloFriend
{
String name;
int age;
HelloFriend()
{
Scanner in = new Scanner(System.in);
//输入字符
System.out.println("What's your name?");
name = in.nextLine();
//输入整形数据
System.out.println("How old are U?");
age = in.nextInt();
}
void display()
{
System.out.println("Hello, "+name+". Next year U'll be "+(age+1));
}
}
public class InputTest
{
public static void main(String[] args)
{
HelloFriend aFriend = new HelloFriend();
aFriend.display();
}
}
特别注意的是JDK5.0以前的版本不能这样处理,这多少有些令人沮丧,还好我们用swing包里的方法也不难实现,只需把构造函数里的内容改为如下即可:
this.name = JOptionPane.showInputDialog("Name?");
String input = JOptionPane.showInputDialog("AGE?");
this.age = Integer.parseInt(input);