前面已经看到,打印输出到“标准输出流”(即控制台窗口)是一件废话从那个容易的事情,只要调用System.out.println即可。然而,读取“标准输入”System.in就没那么简单了。要想通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
Scanner in= new Scanner(System.in);
现在,就可以使用Scanner类的各种方法实现输入操作了。例如,nextLine方法将输入一行。
import java.util.Scanner;
System.out.println("What's your name ?");
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println(s);
在这里,使用nextLine方法是因为在输入行中有可能包含空格。想要读取一个单词(以空白符作为分隔符),就调用
String firstName = in.next() ;
要想读取一个证书,就用nextInt方法。
int age = in.nextInt();
于此类似,要想读取下一个浮点数,就调用nextDouble方法。
在程序清单3-2的程序中,询问用户姓名和年龄,然后打印一条如下格式的消息:
Hello, Cay Next year, you'll be 57
System.out.println("What's your name ?");
Scanner in = new Scanner(System.in);
String name = in.nextLine();
int age = in.nextInt();
System.out.println("Hello"+", "+name+", "+"Next year"+", you'll be "+(age+1));
//What's your name ?
//Mark
//28
//Hello, Mark, Next year, you'll be 29
最后,需要注意的是 Scanner类定义在java.util包中。当使用的类不是定义在基本java.lang包中时,一定要使用import指示符将相应的包加载进来。有关包与import指示字的详细描述在下章。
因为输入时可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6特别引入了Console类实现这个目的。要想读取一个密码,可以采用下列代码:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword();
System.out.println("Username:" + username + " Password:" + passwd);
java.util.Arrays.fill(passwd, ' ');
System.out.println(cons);
System.console() returns null if there is no console.
java.util.Scanner 5.0
方法名 返回类型 说明
Scanner(InputStream in)   用给定的输入流创建一个Scanner对象
nextLine() String 读取输入的下一行内容
next() String 读取输入的下一个单词(以空格作为分隔符)
nextInt() int 读取一个整型数字
nextDouble() double 读取并转换下一个表示整数或浮点数的字符序列
hasNext() boolean 检测输入中是否还有其他单词
hasNextInt() boolean 检测输入中是否还有其他整数
hasNextDouble() boolean 检测输入中是否还有其他浮点数
java.lang.System
static Console console()
如果有可能进行交互操作,就通过控制台窗口为交互的用户返回一个Console对象,否则返回null。对于任何一个通过控制台窗口启动的程序,都可使用Console对象。否则,其可用性将与所使用的系统有关。
java.io.Console
static char[] readPasswrod(String  prompt,object...args)
static String readLine(String prompt, object...args)
显示字符串prompt并且读取用户输入,直到输入结束。args参数可以用来提供输入格式。

转载于:https://www.cnblogs.com/avention/p/10123699.html

3.7.1 读取输入相关推荐

  1. linux脚本读取输入信息,LinuxCommandLinex -- [ 脚本 - 读取输入]

    read $ISF read read [options] [variable...] options: -p prompt 提示语句 -t timeout 超时 -s slient 不显示用户输入( ...

  2. 一行行地读取输入行,将把最长的行打印出来

    详细问题描述:编写一个程序,一行行地读取输入行,直到到达文件尾.算出每行输入行的长度,然后把最长的行打印出来.假定所有的输入行均不超过1000个字符. 首先,一行行地读取输入行可以使用gets函数.g ...

  3. Java 1.2.1 读取输入

    读取输入   打印输出到标准输出流即控制台窗口是件容易的事情,只要调用System.out.println即可.   然而,读取" 标准输人流" System.in就没有那么简单了 ...

  4. awk 系列Part7:awk 怎么从标准输入(STDIN)读取输入

    awk 系列:awk 怎么从标准输入(STDIN)读取输入 在 awk 系列的前几节,我们看到大多数操作都是从一个文件或多个文件读取输入,或者你想要把标准输入作为 awk 的输入. 在 awk 系列的 ...

  5. scanner 获取控制台信息_关于java.util.scanner:如何使用Java中的Scanner类从控制台读取输入?...

    如何使用Scanner类从控制台读取输入? 像这样: System.out.println("Enter your username:"); Scanner = input(); ...

  6. java读取输入字符串的操作

    读取输入字符串的方法: 通过Scanner类读取字符串的方法next()和nextLine() import java.util.*; public class Main{public static ...

  7. Linux | Shell 学习笔记(二)Shell 流程控制 if、case、for、while| read读取输入 | 函数的使用 | cut、sed、awk、sort命令 +Demo

    文章目录 参考资料 运行环境 一.流程控制 1.1 if 判断 1.2 case 语句 1.3 for 循环 1.4 while 循环 二. read 读取控制台输入 三.函数 3.1 系统函数 ba ...

  8. java读取控制台输入_如何使用Java中的Scaner类从控制台读取输入?

    侃侃尔雅 从控制台读取数据BufferedReader是同步的,因此可以安全地从多个线程对BufferedReader进行读取操作.可以指定缓冲区大小,也可以指定默认大小(8192)可以使用.对于大多 ...

  9. 【C++/笔试】传统OJ / ACM模式 读取输入总结

    前言   秋招第一次笔试,没怎么准备传统OJ(ACM模式)类型的题,逗号分隔+每排数量不一样的输入当场给我整麻了,吸取失败的经验教训,在此整理了ACM模式的输入读取处理. 1. 简单输入 1.1 空格 ...

最新文章

  1. 黑客用python还是ruby-Python、Ruby、Go语言哪个更值得学习?
  2. Python脚本导出为exe程序
  3. python之cookies
  4. Java Web应用程序:Oozie及其使用方式
  5. java socket 通信协议_java网络通信(基于TCP协议可靠通信的socket编程)
  6. java 树状 子节点_java构建树形列表(带children属性)
  7. 跟老齐学python Django实战第一章错误解决
  8. 第32月第8天 打包 Framework 时使用 CocoaPods 引入第三方库的方法
  9. ansible 容器部署_使用ansible-bender工具构建容器图像
  10. mysql数据库密码有效期_Mysql5.7.19密码已过有效期的处理过程(密码过期password_expired)...
  11. mysql 字段值不同枚举_【mysql】关于枚举值 '1','0'的神奇判断
  12. 全国计算机考试网页制作,全国计算机信息高新技术考试网页制作(FrontPage平台)网页制作员级考试考试大纲...
  13. mysql 命令行关闭fuw_网络管理 - eSight V300R009C00 维护指南 12 - 华为
  14. R语言风玫瑰图绘制(附代码)
  15. python:修改图片的尺寸
  16. [css]画圆形标签
  17. facebook是什么
  18. java-net-php-python-java校园约球网站计算机毕业设计程序
  19. [Vue][transition]Vue中实现类似JQuery中slideUp slideDown的滑动显示隐藏过渡动画效果
  20. iPhone 12使用“通过Apple登录”方法教程「iphone技巧」

热门文章

  1. 烂泥:nginx同时支持asp.net与php
  2. InnoDB行格式(compact,redundant)对照
  3. 我的Debian 8.0 (jessie)配置文档
  4. Visual Studio的一些快捷键(转载)
  5. 为应用程序增加文件压缩功能
  6. 关于:为什么在 Real Producer 10 Plus 里面找不到 RealAudio 10 with aacPlus的解答
  7. healpy的安装(包括healpix)
  8. 不用for 也能实现按照某索引排好某序列
  9. java中对JVM的深度解析、调优工具、垃圾回收
  10. 谁会为小扎的AI管家配音:网民选了这位老帅哥