Java使用System.in
表示标准输入设备,用System.out
表示标准输出设备。
输入
Java使用Scanner类创建对象,读取来自System.out
的输入,
Scanner input = new Scanner(System.in);
Scanner
对象在java.util
类包里,使用前需要用import
语句导入。
这条语句创建了一个Scanner
类型的变量input
,可调用它的方法完成输入,
方法 | 作用 |
| 读取 |
| 读取 |
| 读取 |
| 读取 |
| 读取 |
| 读取 |
| 读取字符串 |
| 读取一行文本 |
不要在使用
nextLine()
方法之前使用其它方法。
如果要读取字符,先调用nextLine()
方法读取字符串,再调用charAt(0)
来返回第一个字符。
Scanner input = new Scanner(System.input); // 创建对象
int a = input.nextInt(); // 读取int类型数据
double b = input.nextDouble(); // 读取double类型数据
String s = input.next(); // 读取字符串
char ch = s.charAt(0); // 读取字符
输出
java使用System.out.print()
和System.out.println()
方法输出,这两个方法的区别在于前者输出后不会自动换行,而后者会换行。
如果要格式化输出,则使用System.out.printf()
方法,例如:
System.out.printf("the number is %5.3f" + number);
代码中以百分号%
开头的转换码表示格式标识符,指定每个数字的显示格式。
有时候数字可以省略,但是数字后的字母不能,不同的字母表示不同的含义
标识符 | 输出格式 |
| 布尔值,true或false |
| 字符 |
| 整数 |
| 浮点数,默认情况下显示小数点后6位 |
| 科学记数法 |
| 字符串 |
在标识符中,小数点后面的数字表示精度,也就是说要精确到小数点后面几位,以四舍五入的方式表示。如果数字本身的小数点位数就小于精度值,则在后面补0,如
number = 6.66666
System.out.printf("the number is %.3f" + number);
上述输出6.667。如果number
值为6.6,则输出6.600。
标识符小数点前的数字表示域宽度,表示数字的所占位数(含小数点)。如果域宽度值小于数字需要的位数,则输出不受域宽度限制,如
number = 12345.789
System.out.printf("the number is %4.1f" + number);
输出应该保留1位小数,因此是12345.8,该数字占的位数超出了域宽度值,因此不受限制,输出为12345.8。
如果域宽度值大于位数,则在数字前方增补空格,例如
number = 123.789
System.out.printf("the number is %8.1f" + number);
输出为___123.8(“_”表示一个空格),空格与数字和小数点的位数一共为域宽度8。
上面情况输出是右对齐的,也即在数字前增加空格。如果需要实现左对齐,在域宽度前增加负号-
即可,如
number = 123.789
System.out.printf("the number is %-8.1f" + number);
输出为123.8___(“_”表示一个空格)。
如果在输出时需要输出百分号
%
,则应该使用%%
。