1. 输入。
要想通过控制台进行输入,首先需要构造一个Scanner对象,它附属于“标准输入流”System.in。
Scanner in=new Scanner(System.in);
现在,可以使用Scanner类的各种方法实现输入操作了。例如,nextLine方法将输入一行。
System.out.print("What is your name?");
String name=in.nextLine();
在这里,使用nextLine方法的主要原因是在输入行中可能包含空格。如果读取的是一个单词(以空白符作为分隔符),则可以调用
String firstName=in.next();
要想读取一个整数,可以使用nextInt方法。
System.out.print("How old are you?");
int age=in.nextInt();
与此类推,要想读取下一个浮点数,可以使用nextDouble方法。
当然,要使用Scanner对象,首先在程序的开头需要调用util包:
import java.util.*;
Scanner 类定义在java.util包中。当使用的类不是定义在基本java.lang包中时,一定要使用import指示字将相应的包加载进来。
下面插入一个简单的例子供大家参考:
- import java.util.*;
- public class Test {
- 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 on console
- System.out.println("My name is "+name+". I am "+age+" years old.");
- }
- }
2. 格式化输入。
可以使用System.out.print(x)将数值x输出到控制台上。这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。例如:
double x=10000.0/3.0;
System.out.print(x);
打印
3333.3333333333335
如果希望显示美元、美分等符号,有可能会出现问题。
在JDK5.0之前,格式化数值曾引起过一些争议。现在,JDK5.0沿用了C语言库函数中的printf方法。例如,调用
System.out.printf("%8.2f", x);
可以用8个字符的宽度和小数点后两位的精度打印x。也就是说,打印输出一个空格和7个字符,即:3333.33
在printf中,可以使用多个参数,例如:
System.out.printf("Hello,%s. Next year, you'll be %d.", name, age);
每一个以%字符开始的格式说明符都用相应的参数替换。格式说明符结尾的转换符将知识被格式化的数值类型:f表示浮点数,s表示串,d表示十进制整数。