java常用输出符_Java基础【2】输入与输出

输入和输出是计算机最基本的功能,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

~~~~~~~~~~~~

如果觉得有一点帮助,帮忙点个赞,支持一下。

推荐一下我的公众号:【时光与字节】,更多原创分享。

谢谢你的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值