第四讲我们已经说过了,Java中没有内置String类型,而是在Java的类库中提供了一个基类,当直接使用String拼接字符串时,String会先创建一个StringBuilder实例,然后调用append()方法来实现拼接。当拼接较多时,就会产生大量的实例,占用内存,导致效率降低。


java 空格隔开输出数组 java输出空格隔开_c++怎么输出空格


本机测试当循环10万次,String拼接耗时25秒左右:


java 空格隔开输出数组 java输出空格隔开_c++怎么输出空格_02


而使用StringBuilder拼接字符串时,耗时仅11毫秒:


java 空格隔开输出数组 java输出空格隔开_c++怎么输出空格_03


学完此次课程,我能做什么?

通过本次课程的学习我们可以按照自己的要求来格式化输出和输出。

学习此次课程,需要多久?

5-10分钟

课程内容

输入输出

在前面的Demo中我们已经使用过标准出书流(控制台窗口),只需要调用System.out.println()即可。如果需要获取用户控制台输入则需要使用http://System.in结合Scanner对象来完成。


java 空格隔开输出数组 java输出空格隔开_c 输出空格_04


运行结果:


java 空格隔开输出数组 java输出空格隔开_java 空格隔开输出数组_05


String next() 读取输入的下一个单词(以空格为分隔符)

int nextInt() 读取下一个int类型数字

double nextDouble() 读取下一个浮点数或者整数(整数会转换为浮点数)

boolean hasNext() 检测输入中是否还有其他单词

boolean hasNextInt() 检测输入中是否有整数

boolean hasNextDouble() 检测是否还有整数或者浮点数

格式化输入输出

为什么要使用格式化输出输出?

顾名思义当我们想把输出的内容,按照我们的想法来格式化,比如我们想控制小数点位数,数字前补0,左对齐,八进制,十六进制等等。

Java中的输入输出格式化沿用了C语言中的printf函数。

下面先看一个入门程序:


java 空格隔开输出数组 java输出空格隔开_c 输出空格_06


运行结果:


java 空格隔开输出数组 java输出空格隔开_java 空格隔开输出数组_07


%号后面的s代表字符串,d代表十进制整数,f代表浮点数。

下面我们看几个常用的格式化转换符:


java 空格隔开输出数组 java输出空格隔开_c++ 输出string_08


用法解释:

转换符作用d十进制数x十六进制数o八进制数f浮点数s字符串c字符b布尔值h散列值n和平台有关的行分隔符

再看几个常用的用于printf的标志:


java 空格隔开输出数组 java输出空格隔开_c++怎么输出空格_09


输出结果:


java 空格隔开输出数组 java输出空格隔开_c 输出空格_10


标志作用+打印正负号-左对齐,千位分隔符8.2f8表示字符宽度,2表示小数点位数空格添加空格

接下来学习什么?

接下来我们将学习Java的控制语句和循环语句。