赞
踩
输入和输出是计算机最基本的功能,Java也提供了多种方式完成输入输出,本篇主要分享最基础,最常用的。
输入(Scanner类)
Scanner 是 Java5 的新特征,在java.util包里,可以完成用户输入,使用如下:
1. 导入java.util包;
2. 构造Scanner对象,参数为标准输入流http://System.in;
3. 使用next()方法系列接收数据;常用方法如下:String nextLine()
接收输入的一行内容(以回车作为分隔符)String next()
接收输入的一个单词(以空格作为分隔符)int nextInt()
double nextDouble()
接收输入的一个整数或浮点数boolean hasNext()
检测是否还有单词输入boolean hasNextInt()
boolean hasNextDouble()
检测输入中是否整数或浮点数
//来源【时光与字节】package BaseCode;
import java.util.Scanner; //导入Scanner的包public class code2_0 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//构建一个Scanner对象 System.out.print("输入数据:");
String s1 = sc.next(); // 接收一个单词,空格分隔 System.out.println("接收的单词s1:"+s1);
String s2 = sc.nextLine(); // 接收一行字符串 System.out.println("接收的一行字符串s2:"+s2);
System.out.print("输入整数:");
if (sc.hasNextInt()) {// 判断输入的是否是整数 int i = sc.nextInt(); // 接收整数 System.out.println("整数数据i:" + i);
}
else {// 如果输入的不是整数 System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (sc.hasNextDouble()) {// 判断输入的是否是小数 Double f = sc.nextDouble(); // 接收小数 System.out.println("小数数据f:" + f);
}
else {
System.out.println("输入的不是小数!");
}
sc.close(); //关闭Scanner对象 }
}
运行结果
输入数据:This is Java code
接收的单词s1:This
接收的一行字符串s2:is Java code
输入整数:23
整数数据i:23
输入小数:12.36
小数数据f:12.36
几点说明:
1. next()不接收带空格的字符串,输入字符串前面的空格next()会去掉,后面的空格作为分隔符或者结束符。
2. 当输入多个数据时,第一个next()接收到数据,下一个next()发现字节流里面有东西,就不会阻塞等待输入了,会直接接收。如上例中,输入“This is Java code” ,s1用next()只接受一个单词“This”,s2用nextLine()接收了剩余的部分。
3. 要输入 int 或 float /double类型的数据,最好先使用 hasNextXxx() 方法进行验证。
4. Scanner对象用完最后用close()关闭掉,不然会告警。
输出(print,println,printf)
System.out.print():是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台)。
System.out.println():与print()基本一样,区别就是输出完成后执行换行。
System.out.printf():这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。
重点说一下printf(),这个方法能按照我们的需求进行格式化的输出,如输出要控制小数的位数、数字前补0、输出对齐、加分隔符等等。
基本格式:两个参数,第一个是格式控制符,第二个可变长,表示待输出数据对象。
System.out.printf(“格式控制”,表达式1,表达式2,……,表达式n)
每个格式控制以%开始,后跟被格式化的数值类型,如:%d表示int型。输出时每个格式控制都用后面相应位置的表达式值替换。
分两个部分说明:
1. 常用的格式控制符(字符数值类):
//来源【时光与字节】package BaseCode;
public class code2_1 {
public static void main(String[] args) {
String name="时光与字节";
int nl=18;
double cj=98.675;
System.out.printf("字符串:%s;%n数字:%d;%n小数(默认六位):%f",name,nl,cj);
System.out.printf("%n整数留五列不足前面添零:%05d",nl);
System.out.printf("%n小数点后留两位:%.2f",cj);
System.out.printf("%n整数八进制输出:%o",nl);
System.out.printf("%n小数共6列,小数点后1位:%06.1f",cj);
System.out.printf("%n前加正号、千位分隔符:%+,.2f",36521.254);
}
}
运行结果
字符串:时光与字节;
数字:18;
小数(默认六位):98.675000
整数留五列不足前面添零:00018
小数点后留两位:98.68
整数八进制输出:22
小数共6列,小数点后1位:0098.7
前加正号、千位分隔符:+36,521.25
2. 时间日期类格式化输出
%t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同的输出格式 。下表只列出常用的日期类控制符。
//来源【时光与字节】package BaseCode;
import java.util.*;
public class code2_2 {
public static void main(String[] args) {
System.out.printf("%tF\n",new Date());
System.out.printf("%tT\n",new Date());
System.out.printf("%tr\n",new Date());
System.out.printf("%tY\n",new Date());
System.out.printf("%ty\n",new Date());
System.out.printf("%tm\n",new Date());
System.out.printf("%td\n",new Date());
System.out.printf("%ta\n",new Date());
System.out.printf("今天是:%1$ty年%1$tm月%1$td日,%2$s", new Date(),"J_ZHANG");
//%后是数字是后面被格式化的数值索引,从1开始,以$结束。 //如:new Date()是第一个,索引为1。 }
}
运行结果
2019-10-07
21:47:38
09:47:38 下午
2019
19
10
07
星期一
今天是:19年10月07日,J_ZHANG
注:格式化输出的相关控制符有很多,上面只是部分常用的,详细的可参看JDK文档:
java.util.Formatter
~~~~~~~~~~~~
如果觉得有一点帮助,帮忙点个赞,支持一下。
推荐一下我的公众号:【时光与字节】,更多原创分享。
谢谢你的支持!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。