读取输入:
如果想通过控制台进行输入, 首先需要构造一个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 inputSystem.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 inputSystem.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.NullPointerExceptionat com.picc.sample.firstsample.PrintSample.main(PrintSample.java:90)

转载于:https://www.cnblogs.com/qiezuimh/p/9713290.html

java笔记 -- 输入输出相关推荐

  1. Java笔记04-核心类库

    Java笔记04-核心类库 Object类 1.1 常用的包 java.lang包 -该包是Java语言中的核心包,该包中的内容由Java虚拟机自动导入 如:String类,System类等java. ...

  2. 11.3-全栈Java笔记:线程的生命周期

    一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态 ...

  3. 10.4-全栈Java笔记:常用流详解(二)

    上节我们讲到「Java中常用流:文件字节流和字节数组流」,本节我们继续走起~  缓冲流 BufferedInputStream和BufferedOutputStream这两个流是处理流,通过内部缓存数 ...

  4. java笔记之抽象类和接口

    前言 java笔记之抽象类和接口是开发人员的设计工具 正文 1.抽象类 客观存在的一类事物,当这类事物都是抽象的,无法具体的描述. 1)语法: 修饰符 abstract class 类名{ } 2)特 ...

  5. 9.1-全栈Java笔记: 容器泛型—认识Collection接口

    开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容. 我们一般通过"容器"来容纳和管理数据.   事实上,数组就是一种容器,可以在其中放置对象或基本类型数据. ...

  6. acm java输入输出_在竞赛ACM Java处理输入输出

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

  7. java笔记(3):String(2)

    java笔记(3):String(2) 参考资料:网易云网课李兴华:http://study.163.com/course/courseMain.htm?courseId=1455026 一.字符串一 ...

  8. 4.8-全栈Java笔记:包机制

    包机制是java中管理类的重要手段. 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于,文件夹对于文件的作用. package 我们通过 ...

  9. Java笔记07-List、Set、数据结构、Collections

    Java笔记07-List.Set.数据结构.Collections 主要内容 数据结构 List集合 Set集合 Collections 第一章 数据结构 2.1 数据结构有什么用? 当你用着jav ...

最新文章

  1. caffe学习笔记19-batchsize参数
  2. linux下查看十六进制文件方法
  3. 使用SAP云平台的destination消费Internet上的OData service
  4. 快速排序 自带时间复杂度检测
  5. C语言中执行python代码或源程序文件(高级嵌入方式)
  6. 解决xml中mybatis等的dtd提示问题
  7. 俄罗斯 90 后天才写 5 年代码创收 1000 亿美金
  8. Spring Boot最核心的21个注解
  9. 鲁宾逊微积分是什么?
  10. 关于华为AR/HUAWEI AR Engine
  11. Adobe Flash Player 下载
  12. 【宣讲会感言】腾讯实习生
  13. 城域网和计算机网络区别,局域网、广域网、城域网的区别是什么
  14. threejs 实现场景围绕鼠标缩放,而不是默认的场景缩放中心
  15. 计算机无法识别fat32,电脑无法识别USB设备的原因及处理方法
  16. svn 添加忽略后解除被忽略的文件或文件夹
  17. DBMS-关系数据库的设计:范式、函数依赖、分解算法、多值依赖
  18. 读Python源码(三)Python列表的表示
  19. win10系统用hexo+GitHub搭建博客遇到的坑
  20. 蒸压加气混凝土砌块荷载系数1.4取值依据

热门文章

  1. Java位运算在程序设计中的使用:位掩码(BitMask)
  2. 37 windows_37_Thread_InterLock 线程-原子锁
  3. 将Model对象转换成json文本或者json二进制文件
  4. linux笔记 第3天
  5. 大规模集群中Docker镜像如何分发管理?试试Uber刚开源的Kraken
  6. C语言输入一行整数(OJ输入格式)
  7. grafana+prometheus快速搭建MySql监控系统实践
  8. Linux下安装PCRE
  9. 管理表空间和数据文件——维护表空间——改变表空间的读写状态和改变表空间名称...
  10. 【OpenCV学习】抠图