Java核心技术笔记——Java的输入输出(2014.04.16~17day36、37)

输入输出:

 

输入:要通过控制台进行输入,首先需要构造一个Scanner对象,它附属于”标准输入流”System.in。如:Scanner in=new Scanner(System.in);

Scanner类的方法:nextLine:输入一行 String firstName=in.nextLine();

                 用nextLine的原因是可能输入行中包含空格。

 

                 读取的是单词(以空白符作为分隔符)用法:String firstName=in.nex();

                 读取一个整数:int age=in.nextlt;

                 读取一个浮点数:double age=in..nextdouble();

                 检查输入中是否还有单词:boolean hasNext()

检查是否还有表示整数或浮点数的下一个序列booleanhasNextInt();

                                         BooleanhasNextDouble();

                  用指定的输入流创建一个Scanner对象:Scanner(InputStream in)

                  读取下一行的内容:String next();

             

打印“标准输入出流”(即控制台窗口),调用System.out.println方法(System.out.print前者有回者,后者回车。)

 

JAVA的包:

JAVA的基本包是java.lang包,,使用的类不是在java.lang包中时,要用import将对应的包加载进来。

 

 

使用输入对话框:

String input=JOptionPane.showInputDialog(promptString)返回值是字符串

如果要用字符可以转换成数值:Integer.parselnt

Double.parseDouble

如:Stringinput=JOptionPane.showInputDialog(“How old are you?”);

    Intage=Integer.parselnt(Int);

JOptionPane类定义在javax.swing包中.

Static String showInputDialog(Objectmessage) 带确定取消

注意点:调用JPptionPane.showInputDialog时,需要用System.exit(0)结束应用程序。这是因为当显示一个对话框时,就启动了一个新的控制线程。在main方法退出后,新线程并没有自动终止,要想终止所有的线程,需要调用System.exit方法。

Java.lang.System

Static void exit (int status)

终止虚拟机并将状态码传递给操作系统。非0的状态码表示出错。


JAva的输出

输出:

System.out.print(x)- 可以使用System.out.print(x) 打印出x对应的数据类型的最大非数字位数。

Printf方法:打印格式化数值。如:System.out.printf(%8.2f,x) 意思为用8个字符串的宽度和小数点后两位的精度打印x,也就是打印出一个空格,和七个字符。Eg: 3333.33







Prinftf的参数:如System.out.printf(Hello,%s,Next year,youll be %d,name,age);

转换符

类型

举例

d

十进制整数

159

x

十六进制整数

9f

O

八进制整数

237

F

定点浮点数

15..9

E

指数浮点数

1.59e+01

G

通用浮点数(ef较短的)

 

A

十六进制浮点数

0x1.fccdp3

S

字符串(可以使用s字符串格式化任意对象)

Hello

C

字符

H

B

布尔

True

H

散列码

4262b2

Tx

日期时间

见表3-7

%

百分号

%

n

与平台有关的行分隔符

 

Prinft的标志:System.out.print(5,.2f,10000.3.0)

使用分组符,并将负数括在括号内 结果:3,333.33

                             中间的逗号为分组符。


标志

目的

举例

+

打印正数和负数的符号

 

空格

在下载数之前加空格

 

0

数字前面补0

 

-

左对齐

 

(

将负数括在括号内

 

,

添加分组分隔符

 

#(对于f格式)

包含小数点

 

#(对于xo格式)

添加前缀0x0

 

^

转换为大写

 

$

指定将被格式的参数索引,例如,%1$d,%1$x

 

 

将以十进制和十六进制格式打印第1个参数

 

<

格式化前面说明的数值,例如%d%<x以十进制和十六进制打印同一个数

 

 

 

 

 

 

 

Printf中的日期格式的转换符:

转换符

类型

举例

c

完整的日期和时间

Mon Feb 09 18:05:19 PSt

F

ISO 8601日期

2004-02-09

D

美国格式的日期(月//年)

02/09/2004

T

24小时时间

18:05:19

r

12小时时间

06:05:19pm

R

24小时时间,没有秒

18:05

Y

4位数字的年(前面补0

2004

y

年的后两位数字(前面补0

04

C

年的前两位数字(前面补0

20

B

月的完整拼写

February

bh

月的缩写

Feb

m

两位数字的月

02

d

两位数字的日(前面补0)

09

e

两位数字的日(前面不补0

9

A

星期几的完整拼写

Monday

a

星期几的缩写

Mon

j

三位数字的年中的日子(关面补-0),在001~336之间

069

H

两位数字的小时,前面补00~23之间

18

k

两位数字的小时,前面不补00~23之间

18

l

两位数字的小时(前面补0),在001366之间

06

l

两位数字的小时(前面不补0),在001366之间

6

M

两位数字的分钟(前面补0)0~23之间

05

S

两位数字的秒,前面补0

19

L

三位数字的毫秒(前面补0

047

N

九位数字的毫微秒(前面补0

047000000

P

上午或下午大写的标志

PM

p

下午或下午小定标志

pm

z

GMT,RFC822数字位移

-0800

Z

时区

PST

s

从格林威治时间1970-01-01 00:00:00起的秒数

107888319

E

从格林威治时间1970-01-01 00:00:00起的毫秒数

1078884319047

格式化的字符串指出要被格式华的参数索引有两种形式如:

  1. System.out.printf(%1$s%2$te,%2$tY,Due date,new Date()); 这种方法使用时紧跟在%后面,以$终止
  2. System.out.printf(5s%tB%<te,Due date,new Date());  使用标志。

注意:索引值是从1开始的而不是从0开始的。如%1$格式化的是第1个参数。


格式说明符的语法图?


String.format(静态的方法)和printf都是格式化字符串,两者的区别在于String.format是创建一个格式的字符串,不打印;而printf是打印格式化字符串。

PS:到目前为止现在接触到的静态方法有:String.format

非静态方法:String.format



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值