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 ...
随机推荐
- 记AOP概念理解
OOD/OOP面向名词领域,AOP面向动词领域. 应用举例 假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data Class,同时,将有多个访问类 ...
- IMU 标定 | 工业界和学术界有什么不同?
点击"计算机视觉life"关注,置顶更快接收消息! 由于格式问题最好在公众号上观看<IMU 标定-工业界和学术界有什么不同?> 本文主要介绍了IMU基本结构原理和误差的 ...
- CDI services--Scope(生命周期)&&EL.(Sp El)
一.EL/SpEL 1.EL语言(CDI与表达式语言(EL)集成,允许在JavaServer Faces页面或JavaServer Pages页面中直接使用任何组件) 1)概述:EL是JSP内置的表达 ...
- java操作git简单实现
记录瞬间 import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.ListBranchCommand; import org.ecli ...
- Query a JSON array in SQL
sql 中存的json 为数组: [{"Level":1,"Memo":"新用户"},{"Level":2," ...
- 使用Spring的@Async创建异步方法
使用Spring的@Async创建异步方法 在开发系统的过程中,通常会考虑到系统的性能问题,提升系统性能的一个重要思想就是“串行”改“并行”.说起“并行”自然离不开“异步”,今天我们就来聊聊如何使用S ...
- ROS kinetic语音识别
1.安装依赖 1.1安装ros-kinetic-audio-common sudo apt-get install ros-kinetic-audio-common 1.2 安装libasound2 ...
- sitecore8.2 基于item路径查询item
查询: query:/sitecore/content/home/foo/bar 结果 bar
- 微信不支持App下载的解决方案 微信跳转打开外部浏览器下载(苹果跳转商店下载)
在微信中,打开app下载链接,或者使用微信扫一扫app下载二维码,都是无法下载app的. 因为腾讯为了自身利益,屏蔽了其他app直接在微信中下载.下面给分享下,找到的2种有效的解决方案. 方案:点击链 ...
- Mysql 版本号、存储引擎、索引查询
[1]Mysql 版本号.存储引擎.索引查询 # 查看数据库版本号 SELECT VERSION(); # 查看数据库支持的引擎(默认即Support == DEFAULT行) SHOW ENGINE ...