2-5-1读取输入
1.导包 import java.util.Scanner; / import java.util.*;
2.构造一个标准输入流Sysou.in关联的Scanner对象
Scanner scan = new Scanner(System.in);
3.根据不同的输入要求用不同的代码来完成输入
方法 | 用途 |
---|---|
String nextLine() | 读取下一行输入 |
String next() | 读取输入的下一个单词(以空白为分隔符) |
int nextInt() | 读取一个整数 |
double nextDouble() | 读取一个double类型浮点数 |
boolean hasNext() | 检测输入中是否还有其他单词 |
boolean hasNextInt() | 检测输入的字符是否是整数 |
boolean hasNwxtDouble() | 检测输入的字符是否是浮点数 |
public class day0916 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String a = scan.nextLine();
String b = scan.next();
int c = scan.nextInt();
double d = scan.nextDouble();
boolean e = scan.hasNext();
boolean f = scan.hasNextInt();
boolean g = scan.hasNextDouble();
System.out.println(a + " " + b + " "+ c + " "+ d + " "+ e + " "+ f + " "+ g);
}
}
输入为:
我是ikun你记住
ikun
6
9.7
坤坤
输出为:
我是ikun你记住 ikun 6 9.7 true false false
2-5-2读取输出
1.正常输出----->System.out.print(x)
我们可以使用System.out.print(x)语句将数值x输出到控制台。这个命令将以x的类型所能允许的最大非0位数打印x
double x = 10000.0 / 3;
System.out.print(x);
语句的输出为:3333.3333333333335
2.换行输出----->System.out.println(x)
换行输出和正常输出的唯一区别为换行输出结束后换到下一行
public class day0916 {
public static void main(String[] args) {
double x = 10000.0 / 3;
System.out.print(x);
System.out.print(x);
System.out.println(x);
System.out.println(x);
}
}
输出为:
333
3
3.格式化输出----->System.out.printf(x)
java沿用了c语言函数库中古老约定,用printf方法进行不同要求的输出。
例:int a = 10;
System.out.printf(“%d”,a);
d为转换字符,指示要格式化的数值的类型。
普遍的转换字符
转换字符 | 类型 | 实例 |
---|---|---|
d | 十进制数 | 159 |
x或X | 十六进制数 | 9f |
o | 八进制数 | 231 |
f或F | 定点浮点数 | 15.9 |
e或E | 指数浮点数 | 1.59e+01 |
a或A | 十六进制浮点数 | 0x1.fccdp3 |
s或S | 字符串 | hello |
c或C | 字符 | h |
b或B | 布尔 | true |
% | 百分号 | % |
**注意:**可以使用s转换字符格式化任意的对象。
指定格式数输出
标志 | 作用 | 示例 |
---|---|---|
+ | 打印正数和负数的符号 | +333 |
空格 | 在正数前面添加一个空格 | | 333| |
0 | 增加前导0 | 00333.33 |
- | 字段左对齐 | |3333.33 | |
( | 将负数包围在括号内 | (333.33) |
#(对于f格式) | 总是包含一个小数点 | 3333. |
#(对于x或者0格式) | 添加前缀0x或0 | 0xcafe |
, | 增加分组分隔符 | 3,3333.33.7 |
举几个例子
public class day0916 {
public static void main(String[] args) {
int a = -5;
int b = 5;
System.out.printf("%+d %+d\n",a,b);
System.out.printf("%+d % d",a,b);
System.out.printf("%+d %02d",a,b);
}
}
输出为:
-5 +5
-5 5
-5 05