java控制台输入输出
一、比较传统的输入方法用输入流,得到字符串后要另行判断、转换
案例
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class MainRun {
public static void main(String[] args) {
try {
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("请输入一个整数:");
String str1 = bufferedReader.readLine();
Integer int1 = Integer.valueOf(str1);
System.out.println("输入的整数是:" + int1); System.out.println("请输入一个浮点数:");
String str2 = bufferedReader.readLine();
Double double1 = Double.valueOf(str2);
System.out.println("输入的浮点数是:" + double1);
} catch (IOException e) {
e.printStackTrace();
}
}
}
请输入一个整数:
输入的整数是:234
请输入一个浮点数:
输入的浮点数是:23.0
二、JDK5以后有了Scanner处理控制台输入
格式1: Scanner sc = new Scanner(new BufferedInputStream(System.in));
格式2: Scanner sc = new Scanner(System.in);
在有多行数据输入的情况下,一般这样处理:
while(sc.hasNextInt()){...} 或者 while(sc.hasNext()){}
读入一个字符串: String str = sc.next();
读入一整行数据: String lineString=sc.nextLine();
读入一个布尔值: boolean boolenaNumber = sc.nextBoolean();
读入一个字节型数据: byte byteNumbe = sc.nextByte();
读入一个短整型数据: short shortNumber=sc.nextShort();
读入一个整数: int intNumber = sc.nextInt();
读入一个长整型数据: long longNumber=sc.nextLong();
读入一个单精度浮点数: float floatNumber=sc.nextFloat();
读入一个双精度浮点数: double doubleNumber=sc.nextDouble();
对于计算代码运行时间:
long startTime = System.nanoTime();
// … the code being measured …
long estimatedTime = System.nanoTime() - startTime;
输入案例:
输入数据有多组,每组占2行,第一行为一个整数N,指示第二行包含N个实数
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
for(int i=0;i<n;i++)
{
double a=sc.nextDouble();
...
}
三、输出:
输出内容:System.out.print("");
输出内容并换行:System.out.println("");
格式化输出: System.out.format(String format, Object ... args);
等价于 System.out.printf((String format, Object ... args);
各种格式化样式说明:http://www.cnblogs.com/zhangpengshou/p/3699744.html
格式化输出案例:
// System.out.printf(format, args);format为指定的输出格式,args参数
System.out.printf("%+8.3f\n", 3.14); // "+"表示后面输出的数字会有正负号,正的+,负的-
// ;8.3f表示输出浮点数,宽度为8,小数点保持3位有效
System.out.printf("%+-8.3f\n", 3.14);// "-"表示靠左对齐
System.out.printf("%08.3f\n", 3.14);// "0"8位宽度中自动补0
System.out.printf("%(8.3f\n", -3.14);// "("如果是负数,自动加上( )
System.out.printf("%,f\n", 123456.78); // ","金钱表示方法,每三位有一个逗号
System.out.printf("%x\n", 0x2a3b); // 输出16进制数
System.out.printf("%#x\n", 0x2a3b);// 输出带0x标识的16进制数
System.out.printf("老板:您名字%s,年龄:%3d岁,工资:%,-7.2f\n", "ajioy", 21,
36000.00);
System.out.printf("老板:您名字%1$s,年龄:%2$#x岁\n", "ajioy", 38); // "n{1}quot;表示用第n个参数
输出结果:
+3.140
+3.140
0003.140
(3.140)
123,456.780000
2a3b
0x2a3b
老板:您名字ajioy,年龄: 21岁,工资:36,000.00
老板:您名字ajioy,年龄:0x26岁
五、规格化输出
SimpleDateFormat:SimpleDateFormat是DateFormat的子类,用于格式化日期时间。

SimpleDateFormat myFmt = new SimpleDateFormat(
"yyyy年MM月dd日 HH时mm分ss秒 E ");
System.out.println(myFmt.format(new Date()));
输出结果:
2016年09月08日 17时34分01秒 星期四
DecimalFormat:DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。

DecimalFormat案例:
DecimalFormat df1 = new DecimalFormat("0.0");
DecimalFormat df2 = new DecimalFormat("#.#");
DecimalFormat df3 = new DecimalFormat("000.000");
DecimalFormat df4 = new DecimalFormat("###.###");
System.out.println(df1.format(12.34));
System.out.println(df2.format(12.34));
System.out.println(df3.format(12.34));
System.out.println(df4.format(12.34));
输出结果:
12.3
12.3
012.340
12.34
注意:
在线编程类名是public class Main
java控制台输入输出的更多相关文章
- JAVA控制台输入输出方法总结
java的控制台输入输出有很多方法,此文分别对其进行介绍. 1.控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法, ...
- java控制台输入输出字符串
一.实例说明 本实例通过输入流(System.in)实现从控制台接受用户输入信息,并将该信息输出到控制台. 运行效果如下图: 二.实现代码 三.要点说明 该实例的关键就是用到了System类的输入流, ...
- 关于Java控制台输入输出乱码问题
产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误( ...
- 小学生四则运算出题软件-基于java控制台的实现
.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...
- java控制台输入
一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...
- 在竞赛ACM Java处理输入输出
一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...
- Java 控制台输入数字 输出乘法表(代码练习)
最近,回忆了一些刚学习Java时经常练习的一些小练习题.感觉还是蛮有趣的,在回顾时想起好多学习时的经历和坎坷,一道小小的练习题要研究半天,珍重过往,直面未来.下面贡献代码,Java 控制台输入数字 输 ...
- java控制台输入带空格的字符串
java控制台输入带空格的字符串 Scanner sc = new Scanner(System.in); String str = sc.nextLine();
- AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)
这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...
随机推荐
- Spring中Druid链接池的配置
本文记录了使用Druid的方法, 包括Spring和Spring boot中使用Druid的配置方法. Spring中配置Druid连接池 以链接mysql为例 1 添加druid依赖 <dep ...
- 【前端】向blog或网站中添加语法高亮显示代码方法总结
向blog或网站中添加语法高亮显示的代码方法总结 文章目录 预备知识 目标 第一类方法:嵌入 第二类方法:外部引用 第三类方法:忽略HTML和PHP 最近在写代码时遇到一个问题,就是如何让代码像在ID ...
- 【windows】常用快捷键
浏览器 ctrl shift del 清除网页缓存 文件系统 win+e 打开文件窗口 win+r 运行命令窗口 win+l 锁定桌面 win+m 最小化窗口 ctrl+shift +n 创建文件夹
- 【Spring 核心】装配bean(二) JavaConfig装配
前面介绍完了组件扫描和自动装配,这里再来看一下装配bean的另一种方式JavaConfig. 包路径: src/main/java com.bonc-|--config--|--CDPlayerCon ...
- 图解如何安装MySQL5.0
如何安装MySQL5.0数据库.. mysql-5.5.50-winx64下载地址: http://www.jb51.net/softs/363920.html 我的电脑因为提前安装了.所以需要卸载一 ...
- 递归调用里的性能问题(js)
说明 这是在codewars.com上刷的一道js练习题,在此做个记录 问题描述 The Fibonacci sequence is traditionally used to explain tre ...
- LESS文档
less官方介绍文档(http://lesscss.org/#docs) Getting Started Less is a CSS pre-processor, meaning that it ex ...
- iphone 4s页面引用jssdk无效
今天在做项目的时候,发现了一个bug,用户在iphone 4s上使用该项目打开网页时,调用上传图片的接口没反应. 无语啊.找了半天也没找到是什么问题.
- Java集合框架学习(一)List
先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...
- 函数作用域中的this问题
首先一起回顾下预解析和作用域吧: 预解析: 浏览器每读到一个script标签或function,先不执行任何代码,会先把整个代码快速的浏览一遍,然后从中 挑出 var 和 function两个关键字 ...