读取输入:
如果想通过控制台进行输入, 首先需要构造一个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笔记 -- 输入输出的更多相关文章

  1. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  2. 在竞赛ACM Java处理输入输出

    一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...

  3. java笔记00-目录

    --2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:

  4. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  5. 转 Java笔记:Java内存模型

    Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...

  6. servlet(6) - servlet总结 - 小易Java笔记

    垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...

  7. Java笔记 —— 继承

    Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...

  8. Java笔记 —— 方法重载和方法重写

    Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...

  9. Java笔记 —— 初始化

    Java笔记 -- 初始化 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red !impo ...

随机推荐

  1. 接口自动化测试持续集成--Soapui接口功能测试断言

    断言也就是判断实际结果与预期结果是否相等,如果相等测试通过,否则测试失败,自动化测试不管是UI,Services还有unit都需要做断言. 一.添加断言步骤的组件 二.设置断言 设置常用断言的三种方式 ...

  2. CentOS 7 安装Redis4.0

    redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用 redis存储数据的方法是以key-value的形式 value类型支持字符串,列表,哈希等多种类型 环境 : CnetOS7    ...

  3. ASP.Net Core "The type initializer for 'Gdip' threw an exception"

    ASP.NET Core项目部署在Linux下可能会出现GDI错误 The type initializer for 'Gdip' threw an exception 解决方案:创建 libdl 的 ...

  4. sql server导出数据,本地数据库远程连接不上,怎样设置防火墙(自用)

    控制面板——>系统安全——>windows防火墙——>高级设置 新建入站规则: 将一下两个应用 允许入站: D:\Program Files (x86)\Microsoft SQL ...

  5. Windbg程序调试系列5-高CPU问题分析

    上篇博客中给大家分享了使用Windbg进行Live Debugging: Windbg程序调试系列4-Live Debugging 本篇中我们继续,跟大家分享常见的应用程序高CPU使用率问题分析. 先 ...

  6. 信步漫谈之Quartz—分布式调度(整合spring早期版本【低于spring3.1】)

    一.环境 使用的jar包:spring2.5.6.quartz1.8.6 二.注意点 因为spring内置的quartz版本变化,所以存在spring和quartz版本接口兼容情况,如下: 1)spr ...

  7. Vue入门:Vue环境安装

    安装环境 操作系统:Windows 10 64位 安装Node.js 1. 下载系统对应版本安装包 下载地址:https://nodejs.org/en/download/ 2. 安装 除安装地址外其 ...

  8. 比较两个Date类型的数据相差几年

    package com.utils; import java.text.DecimalFormat; import java.text.ParseException; import java.text ...

  9. Excel 如何判断某列哪些单元格包含某些字符

    “条件格式”,公式: =IF(COUNTIF($A2,,,) 然后根据需要设置格式

  10. Rabbit原理理解

    1.RabbitMQ知多少   圣杰 2.[RabbitMQ]——三种Exchange模式(Fanout.Direct.Topic) https://blog.csdn.net/hao134838/a ...