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的问题。
Java中输入的用法