JAVA 程序语言设计(基础篇) 笔记摘录
-
为避免输入错误, 不要在
nextByte()
、nextShort()
、nextInt()
等等后面使用nextLine()
nextXXXXX()
都称为令牌读取方法
,它们会读取用分隔符隔开的令牌。next()
读取一个由分隔符分隔的字符串,而nextLine()
读取一个以行分隔符结束的行。
令牌读取方法不能读取令牌后面的分隔符。如果令牌读取方法之后调用nextLine()
,该方法读取从这个分隔符开始,到这行的行分隔符结束的字符。这个行分隔符也被读取,但是它不是nextLine()
返回的字符串部分。例如,有以下文件
34 567
执行代码1:
Scanner input = new Scanner(new File("test.txt")); int intValue = input.nextInt(); String line = input.nextLine();
intValue
值为34,而line
包含的字符是`,
5,
6,
7`。如果输入是从键盘输入(
34
后回车):执行代码2:
Scanner input = new Scanner(System.in); int intValue = input.nextInt(); String line = input.nextLine();
将会得到
intValue
值是34,而line
中是一个空的字符串。原因是令牌读取方法nextInt()
读取34,然后再分隔符处停止,这里的分隔符是行分隔符(回车键)。nextLine()
方法会在读取行分隔符之后结束,然后返回在行分隔符之前的字符串。因为在行分隔符之前没有字符,所以line
是空的。 常用的转义字符
\b 退格键
\t Tab键
\n 换行键
\f 进纸
\r 回车键
\ 反斜杠
\ ` 单引号
\ " 双引号
- 常用的标识符
%b 布尔值
%c 字符
%d 十进制整数
%f 浮点数
%e 标准科学记数法形式的数
%s 字符串
- 制定宽度和精度的例子
%5c 输出字符并在这个字符条目前面加4个空格
%6b 输出布尔值,在false前加一个空格,在true前加两个空格
%5d 输出整数条目,宽度至少为5,如果该条目的数字位数小于5,则加空格。否则自动增加宽度。
%10.2f 输出的浮点数宽度至少为10,包括小数点和小数点后两位。这样,给小数点前分配了7位,同样不足补空格,多余则自动增加宽度。
%10.2e 输出浮点条目的宽度至少为10,包括小数点、小数点后两位和指数部分。不足和多余同上。
%12s 输出字符串宽度至少为12。同上。