Java控制台输入输出
1.输入输出
1.1打印输出
打印输出到控制台(标准输出流)只需要调用如下方法即可:
System.out.println();
System.out.print();
...
1.2读取输入
读取控制台的标准输入需要构建Scanner对象,并与保存输入流进行关联:
Scanner in = new Scanner(System.in);
String str_1 = in.next();//读取一个单词(以空白符作为分隔符)
String str_2 = in.nextLine();//读取一整行
控制台输入不可见,实现密码输入:
Console cons = System.console(); String username = cons.readLine("User name: "); cha「 [] passwd = cons.readPassword("Password: ");
2.格式化输出
Java SE 5.0中沿用了C语言函数中的printf方法 。
Java中使用printf方法:
System.out.printf("%d + %d",x,y);
生成格式化字符串:
可以使用静态的 String.format 方法创建一个格式化的字符串, 而不打印输出
String message = String.format("Hello,%s.Next year,you'll be %d",name,age) ;
用于printf的转换符:
转换符 | 类型 |
---|---|
d | 十进制整数 |
x | 十六进制整数 |
o | 八进制整数 |
f | 定点浮点数 |
e | 指数浮点数 |
g | 通用浮点数 |
a | 十六进制浮点数 |
s | 字符串 |
c | 字符 |
b | 布尔 |
h | 散列码 |
tx或Tx | 日期时间(T强制大写) |
% | 百分号 |
n | 行分隔符(与平台相关) |
用于printf的标志:
标志 | 功能 |
---|---|
+ | 打印正数和负数的符号 |
空格 | 在正数之前添加空格 |
0 | 数字前面补0 |
- | 左对齐 |
( | 将负数括在括号内 |
, | 添加分组分隔符 |
#(对于f格式) | 包含小数点 |
#(对于x或0格式) | 添加前缀0x或0 |
$ | 给定被格式化的参数索引。例如, %l$d , %l$x 将以十进制和十六进制格式打印第 1 个参数 |
< | 格式化前面说明的数值。 例如,%d%<X 以十进制和十六进制打印同一个数值 |
printf方法格式说明符语法图: