java笔记 -- 输入输出
读取输入:
如果想通过控制台进行输入, 首先需要构造一个Scanner对象.并与'标准输入流'System.in关联.
代码见下文代码块.
- Sanner (InputStream in)
用给定的输入流创建一个Scanner对象
- String nextLine()
读取输入的下一行内容
- String next()
读取输入的下一个单词(以空格作为分隔符)
- int nextInt()
- double nextDouble()
读取并转换下一个表示整数或浮点的字符序列
- boolean hasNext()
检测输入中是否还有其他单词
- boolean hasNextInt()
- boolean hasNextDouble()
检测是否还有表示整数或浮点数的下一个字符序列.
Scanner类输入时可见的, 不适合从控制台读取密码.可使用Console类.
注意: 只能通过命令行执行, IDE中会报空指针异常.
Console对象每次只能读取一行, 不方便.
String char[] readPassword(String prompt, Object...args)
String String readLine(String prompt, Object...args)
显示字符串prompt并且读取用户输入, 直到输入行结束.
args参数可以用来提供输入格式.
- Console:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");
为了安全起见, 返回的密码放到一维字符数组中, 而不是字符串中.在对密码进行处理后, 应该马上用一个填充值覆盖数组元素.
格式化输出:
double x = 10000.0 / 3.0;
System.out.print(x); // 3333.3333333333335
System.out.printf("%8.2f", x); //3333.33
用8个字符的宽度和小数点后两个字符的精度打印x, 即打印输出一个空格和7个字符.
System.out.printf("Hello, %s. Next year, you'll be %d", name, age);
每一个以%字符开始的格式说明符都用相应的参数替换.格式说明符尾部的转换符将指示被格式化的数值类型:
用于prinf的转换符
转换符 类型 举例
d 十进制整数 159 (常用)
x 十六进制整数 9f
o 八进制整数 237
f 定点浮点数 15.9 (常用)
e 指数浮点数 1.59e+01
g 通用浮点数 -
a 十六进制浮点数 0x1.fccdp3
s 字符串 Hello (常用)
c 字符 H
b 布尔 True
h 散列码 42628b2
tx 日期时间 见下表
% 百分号 %
n 与平台有关的行分隔符
package com.picc.sample.firstsample;
import java.util.Scanner; public class PrintSample {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); // get first input
System.out.println("What your name?");
String name = in.nextLine(); // 取输入行的内容, Han Mei Mei ---> Han Mei Mei
// String name = in.next(); // 取输入行中第一个空格前面的内容, Han Mei Mei ---> Han // get second input
System.out.println("How old are you?");
int age = in.nextInt(); // 取整数, 20 ---> 20
// Double age = in.nextDouble(); // 取浮点数, 20 ---> 20.0 System.out.println("Hello, " + name +".\nNext year, you'll be " + (age + 1)); }
}
// PrintSample .java
package com.picc.sample.firstsample;
import java.io.Console; public class PrintSample {
public static void main(String[] args) { Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");
String password = String.valueOf(passwd);
System.out.println("Hello, " + username +", you password is: " + password);
}
} // Console直接运行会报错:
Exception in thread "main" java.lang.NullPointerException
at com.picc.sample.firstsample.PrintSample.main(PrintSample.java:90)
java笔记 -- 输入输出的更多相关文章
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- 在竞赛ACM Java处理输入输出
一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...
- java笔记00-目录
--2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- 转 Java笔记:Java内存模型
Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- Java笔记 —— 继承
Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
- Java笔记 —— 初始化
Java笔记 -- 初始化 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red !impo ...
随机推荐
- (转) jmeter 获取cookie
转自 https://blog.csdn.net/five3/article/details/53842283 jmeter是测试过程中会被用到的一个测试工具,我们即可用来进行压力的压测,也可以用 ...
- 安装rosetta2016时出现git@172.16.25.11s password: \r\nPermission denied错误,解决方法。
当在source目录执行 ./external/scons-local/scons.py -j8 mode=release bin 时,报错 git@.11s password: \r\nPermis ...
- cocos creator使用anysdk接入admob广告教程
http://lolling787.lofter.com/post/1f5b6553_12925042 cocos creator使用anysdk接入admob广告
- pyppeteer(python版puppeteer)基本使用
一.前言 以前使用selenium的无头浏览器,自从phantomjs2016后慢慢不更新了之后,selenium也开始找下家,这时候谷歌的chrome率先搞出来无头浏览器并开放了各种api,随后fi ...
- Makefile 编译时虽然加上了-g 选项 但是还是无法调试
make 编译时默认的命令是all,不能写成其他的
- Linux基础命令---ipcs显示进程通信
ipcs ipcs指令用来显示进程间通信状况.“-i”选项允许指定特定的资源id.将只打印有关此id的信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUS ...
- GO值类型与引用类型
值类型 值类型包括基本数据类型,int,float,bool,string,以及数组和结构体(struct). 值类型变量声明后,不管是否已经赋值,编译器为其分配内存,此时该值存储于栈上. 值类型的默 ...
- pandas的基本功能(一)
第16天pandas的基本功能(一) 灵活的二进制操作 体现在2个方面 支持一维和二维之间的广播 支持缺失值数据处理 四则运算支持广播 +add - sub *mul /div divmod()分区和 ...
- 获取某个元素第一次出现在数组(json数组)的索引
function firstIndex(arr, text) { // 若元素不存在在数组中返回-1 let firstVal = -1; for (let i = 0; i < arr.len ...
- nginx rewrite (转发)
1.location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所 ...