首页 > 代码库 > Java中输入的用法

Java中输入的用法

Java中输入

1、 读取输入
1)构建一个Scanner,附属到System.in
Scanner in = new Scanner(System.in);
此时可以使用Scanner类的各种方法来读取输入。例如:nextLine方法来读取一行输入
System.out.print("What is your name?");
String name = in.nextLine();

nextLine():    读取的一行中可能包含空格
next():           读取单个单词。
nextInt():       读取一个整数。
nextDouble():读取一个浮点数

例如:String firstName = in.next();
           int age = in.nextInt();

Scanner类包含在java.util包中,因此在使用时,在程序开始处,输入import java.util.*;

注:Scanner不适合用于从终端读取密码,因为输入的文本对于任何人是可见的。在Java SE6中引入了Console类用于该目的。用如下代码来读取密码:
Console  cons = System.console();
String username = cons.readLine("User Name:");
char[] passwd = cons.readPassword("Password: ");
为安全起见,password返回的是一个字符数组,而不是一个字符串。
Console对象用于输入处理不像Scanner一样方便。Console对象一次只能读取一行。没有其他方法用于读取单个单词或数字。

例如:
import java.io.Console;
import java.lang.System;
import java.util.*;


/**
 * This program demonstrates console input
 * @version 1.10 2014-8-5
 * @author Administrator
 *
 */
public class InputTest {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		
		// get first input
		System.out.print("What is your name?");
		String name = in.nextLine();
		
		// get second input
		System.out.print("How old are you?");
		int age = in.nextInt();
		
		// display output to console
		System.out.println("Hello, " + name + ". New year you will be " + (age + 1));
		
		Console  cons = System.console();
		if(cons != null)
		{
			System.out.print("User Name:");
			String username = cons.readLine();
			
			System.out.print("Password: ");
			char[] passwd = cons.readPassword();
		}
		else
		{
			System.out.println("Console object is null");
		}
	}
}

运行结果:




从以上结果可以看出,Console对象的输入必须在可交互式的终端运行才可以,在Eclipse中直接运行代码会出现console对象为null的问题。