您的位置:首页 > 编程语言 > Java开发

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

2014-04-17 00:12 274 查看
输入输出:

输入:要通过控制台进行输入,首先需要构造一个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,you’ll be %d,name,age);

转换符
类型
举例
d
十进制整数
159
x
十六进制整数
9f
O
八进制整数
237
F
定点浮点数
15..9
E
指数浮点数
1.59e+01
G
通用浮点数(e和f较短的)
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格式)
包含小数点
#(对于x或o格式)
添加前缀0x或0
^
转换为大写
$
指定将被格式的参数索引,例如,%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
b或h
月的缩写
Feb
m
两位数字的月
02
d
两位数字的日(前面补0)
09
e
两位数字的日(前面不补0)
9
A
星期几的完整拼写
Monday
a
星期几的缩写
Mon
j
三位数字的年中的日子(关面补-0),在001~336之间
069
H
两位数字的小时,前面补0,0~23之间
18
k
两位数字的小时,前面不补0,0~23之间
18
l
两位数字的小时(前面补0),在001到366之间
06
l
两位数字的小时(前面不补0),在001到366之间
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
格式化的字符串指出要被格式华的参数索引有两种形式如:

System.out.printf(“%1$s%2$te,%2$tY”,”Due
date”,new Date()); 这种方法使用时紧跟在%后面,以$终止
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: