关于Java输入输出

关于Java输入输出

五月 25, 2019

关于java控制台输入输出格式的详解

简介

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

下面是创建 Scanner 对象的基本语法:

1
Scanner s = new Scanner(System.in);

1.使用next的方法

部分代码如下:

1
2
3
4
5
Scanner sc = new Scanner(System.in);
if (sc.hasNext()){
String str = sc.next();
System.out.print(str);
}

解析:

使用该方法获取控制台输入值时,只会获取连续的字符串

例:输入:qqq www 输出:qqq

2.使用nextLine 方法

部分代码如下:

1
2
3
4
5
6
Scanner sc = new Scanner(System.in);
System.out.println("nextLine方式接收:");
if (sc.hasNextLine()) {
String str2 = sc.nextLine();
System.out.println("输入的数据为:" + str2);
}

解析:

使用该方法获取控制台输入值时,能获取某一行的所有字符串,包括空格

例:输入:qqq www 输出:qqq www

3.next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • 4、next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

4.关于int和float的获取

部分代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Scanner scan = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if (scan.hasNextInt()) {
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("整数数据:" + i);
} else {
// 输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("小数数据:" + f);
} else {
// 输入错误的信息
System.out.println("输入的不是小数!");
}

解析:

利用scan.hasNextxxx判断是否为对应的数据类型,从而获取相应的数据类型.

例:输入: 1.1 输出: 输入的不是整数!
输入小数:小数数据:1.1

5.输出格式详解

普通输出格式为(括号里为什么,就输出什么):

1
System.out.print(3.14);

进阶版输出格式:

格式符 类型
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出%

关于输出格式的详解

1
System.out.printf("%0m.nf",xxx);

%为起始符号,不可缺少

0表示有空位时用0占位

m表示占位数

n表示小数点后保留几位(默认为6位)

1.自带正号的输出

1
System.out.printf("%+f",3.14);//输出值为+3.140000

2.自定义宽度的输出(补空格)

1
System.out.printf("%10f",3.14);//输出值为  3.140000(占位数不够的,默认在左边补空格)
1
System.out.printf("%-10f",3.14);//输出值为3.140000  (占位数不够的,在右边边补空格)

3.自定义宽度的输出(补0)

1
System.out.printf("%010f", 3.14);//输出值为003.140000(占位数不够的,默认在左边补0)

4.自定义小数点后几位

1
System.out.printf("%010.4f",3.14);//输出值为00003.1400(占位数不够的补0)