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___(“_”表示一个空格)。

如果在输出时需要输出百分号%,则应该使用%%