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);
Prinft的标志:System.out.print(“5,.2f”,10000.3.0)
使用分组符,并将负数括在括号内 结果:3,333.33
中间的逗号为分组符。
Printf中的日期格式的转换符:
格式化的字符串指出要被格式华的参数索引有两种形式如:
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。
输入:要通过控制台进行输入,首先需要构造一个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 | 与平台有关的行分隔符 |
使用分组符,并将负数括在括号内 结果:3,333.33
中间的逗号为分组符。
标志 | 目的 | 举例 |
+ | 打印正数和负数的符号 | |
空格 | 在下载数之前加空格 | |
0 | 数字前面补0 | |
- | 左对齐 | |
( | 将负数括在括号内 | |
, | 添加分组分隔符 | |
#(对于f格式) | 包含小数点 | |
#(对于x或o格式) | 添加前缀0x或0 | |
^ | 转换为大写 | |
$ | 指定将被格式的参数索引,例如,%1$d,%1$x | |
将以十进制和十六进制格式打印第1个参数 | ||
< | 格式化前面说明的数值,例如%d%<x以十进制和十六进制打印同一个数 | |
转换符 | 类型 | 举例 |
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。
相关文章推荐
- JAVA基础【3.7】《Java核心技术1》Java的基本程序设计结构-输入输出
- 核心技术笔记_重要的java.lang.string:、 String类中的一些重要的方法(2014.04.16 day36)
- 黑马训练营java学习笔记:输入/输出
- #Java 核心技术卷一阅读笔记# 第十二章 Swing用户界面组件
- [学习笔记] Java核心技术 卷一:基础知识 Java 的基本程序设计结构(一)
- java核心技术8--笔记(1)_1到3章
- 《Java 核心技术 卷2》学习笔记
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- java学习笔记#从控制台输入整数,输出最大最小值,直到输入0结束
- 【java核心技术笔记】异常、日志、断言和调试
- Java核心技术 卷一 笔记十一 构造器的小探究
- 《JAVA 核心技术 基础知识》 内部类 笔记
- java核心技术 要点笔记2
- Java核心技术:卷1笔记[6] 事件处理
- [学习笔记] Java核心技术 卷一:基础知识 并发(七)
- java核心技术1笔记-01
- 高手Java核心技术学习笔记
- java核心技术 要点笔记3
- java 多线程核心技术第二章笔记
- java多线程编程核心技术笔记-停止线程interrupt()方法