Java使用System.in表示标准输入设备,用System.out表示标准输出设备。
输入
Java使用Scanner类创建对象,读取来自System.out的输入,
Scanner input = new Scanner(System.in);
Scanner对象在java.util类包里,使用前需要用import语句导入。
这条语句创建了一个Scanner类型的变量input,可调用它的方法完成输入,
| 方法 | 作用 |
|---|---|
nextByte() | 读取byte类型的数 |
nextShort() | 读取short类型的数 |
nextInt() | 读取int类型的数 |
nextLong() | 读取long类型的数 |
nextFloat() | 读取float类型的数 |
nextDouble() | 读取double类型的数 |
next() | 读取字符串 |
nextLine() | 读取一行文本 |
不要在使用
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);
代码中以百分号%开头的转换码表示格式标识符,指定每个数字的显示格式。
有时候数字可以省略,但是数字后的字母不能,不同的字母表示不同的含义
| 标识符 | 输出格式 |
|---|---|
%b | 布尔值,true或false |
%c | 字符 |
%d | 整数 |
%f | 浮点数,默认情况下显示小数点后6位 |
%e | 科学记数法 |
%s | 字符串 |
在标识符中,小数点后面的数字表示精度,也就是说要精确到小数点后面几位,以四舍五入的方式表示。如果数字本身的小数点位数就小于精度值,则在后面补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___(“_”表示一个空格)。
如果在输出时需要输出百分号
%,则应该使用%%。
本文介绍了Java中如何使用Scanner类进行控制台输入,并详细讲解了System.out.print()和System.out.println()的区别以及如何格式化输出。通过示例代码展示了如何设置精度、域宽度以及对齐方式等操作。

2775

被折叠的 条评论
为什么被折叠?



