JavaSE-(一)Java语言基础-6输入与输出

本文详细介绍了Java中的Scanner类用于输入的操作,包括next()与nextLine()的区别,以及如何判断输入的数据类型。在输出方面,重点讲解了格式化输出的使用,如printf和format方法,以及各种转换符的应用,包括日期和时间的格式化。同时,还提到了不同操作系统中换行符的差异和%n的平台无关性换行。内容覆盖了输入输出的基本操作和高级用法,适合Java初学者参考。
摘要由CSDN通过智能技术生成

6)输入输出

输入Scanner的使用

例:

//创建一个scanner对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String s =  scanner.next();
System.out.println("您输入的是:" + s);
//关闭输入流,不关闭会一直占用资源
scanner.close();

next()和nextLine()的区别

​ next() 一定要输入有效字符才能结束,空格为结束标志

​ nextLine() 以回车作为结束标志

判断是否为指定数据类型

​ scanner.hasNextXXX 来检查输入的类型

读取了整数后,接着读取字符串

需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:“\r\n”,因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串

格式化输出

格式化

​ 如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐

转 换 符说 明示 例
%s字符串类型“string”
%c字符类型‘m’
%b布尔类型true
%d整数类型(十进制)99
%x整数类型(十六进制)FF
%o整数类型(八进制)77
%f浮点类型99.99
%a十六进制浮点类型FF.35AE
%e指数类型9.38e+5
%g通用浮点类型(f和e类型中较短的)
%h散列码
%%百分比类型
%n换行符
%tx日期与时间类型(x代表不同的日期与时间转换符)
public class Exercise {
    public static void main(String[] args) {
        String name = "老张";
        String gender = "男";
        int age = 39;
        int height = 170;
        String info = "本人%s,%s,%d岁,身高%d";
        System.out.printf(info, name, gender, age, height);
        System.out.format(info, name, gender, age, height);
    }
}

​ printf和format能够达到一模一样的效果,在printf中直接调用了format

//不同国家的千位分隔符
        System.out.format(Locale.FRANCE,"%,.2f%n",Math.PI*10000);
        System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);
        System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);

搭配转换符的标志,如图所示

标志说 明示 例结 果
+为正数或者负数添加符号(“%+d”,15)+15
左对齐(占用5个空间)(“%-5d”,15)|15 |
0数字前面补0(“%04d”, 99)0099
空格在整数之前添加指定数量的空格(“% 4d”, 99)| 99|
,以“,”对数字分组(“%,f”, 9999.99)9,999.990000
(使用括号包含负数(正数没用)(“%(f”, -99.99)(99.990000)
#如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0(“%#x”, 99)(“%#o”, 99)0x630143
<格式化前一个转换符所描述的参数(“%f和%< 3.2f”, 99.45)99.450000和99.45
$被格式化的参数索引(“%1 d , d,%2 d,s”, 99,“abc”)99,abc

常见日期和时间组合的格式,如图所示。

转 换 符说 明示 例
c包括全部日期和时间信息星期六 十月 27 14:21:20 CST 2007
F“年-月-日”格式2007-10-27
D“月/日/年”格式10/27/07
r“HH:MM:SS PM”格式(12时制)02:25:51 下午
T“HH:MM:SS”格式(24时制)14:28:16
R“HH:MM”格式(24时制)14:28

日期格式转换符

转 换 符说 明示 例
b月份简称Sep
B月份全称September
a星期简称Mon
A星期全称Monday
C年的前两位数字(不足两位前面补0)20
y年的后两位数字(不足两位前面补0)22
j一年中的天数(即年的第几天)076
m两位数字的月份(不足两位前面补0)03
d两位数字的日(不足两位前面补0)17
e月份的日(前面不补0)17

时间格式的转换符

转 换 符说 明示 例
H2位数字24时制的小时(不足2位前面补0)15
I2位数字12时制的小时(不足2位前面补0)03
k2位数字24时制的小时(前面不补0)15
l2位数字12时制的小时(前面不补0)3
M2位数字的分钟(不足2位前面补0)03
S2位数字的秒(不足2位前面补0)09
L3位数字的毫秒(不足3位前面补0)015
N9位数字的毫秒数(不足9位前面补0)562000000
p小写字母的上午或下午标记中:下午英:pm
z相对于GMT的RFC822时区的偏移量+0800
Z时区缩写字符串CST
s1970-1-1 00:00:00 到现在所经过的秒数1193468128
Q1970-1-1 00:00:00 到现在所经过的毫秒数1193468128984

换行符

​ 换行符就是另起一行 — ‘\n’ 换行(newline),回车符就是回到一行的开头 — ‘\r’ 回车(return)

​ 在idea里敲一个回车,实际上是回车换行符

​ 然而在不同的操作系统,换行符是不一样的

​ (1)在DOS和Windows中,每行结尾是 “\r\n”;

​ (2)Linux系统里,每行结尾只有 “\n”;

​ (3)Mac系统里,每行结尾是只有 “\r”。

​ 为了使得同一个java程序的换行符在所有的操作系统中都有一样的表现,使用%n,就可以做到平台无关的换行 System.out.printf("%n");注意一定要是printf而不是print

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值