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工程 你有两种 ...
随机推荐
- oracle多表连接查询竟然还有这种操作
仔细观察上面几个图,比较下 oracle数据库中的+操作符竟然可以替换left join 和right join sql server暂时没用到过
- Words used when reading Redis documents
Redis-----------------First pageevolution n.演变,进化,发展 closely adv.紧密地trade off 交换物品,权衡achieved adj.高度 ...
- 【Linux】文件存储结构
大部分的Linux文件系统(如ext2.ext3)规定,一个文件由目录项.inode和数据块组成: 目录项:包括文件名和inode节点号. Inode:又称文件索引节点,包含文件的基础信息以及数据块 ...
- jquery layer弹窗弹层插件 (转)
/* 先去官网下载最新的js http://sentsin.com/jquery/layer/ ①引用jquery ②引用layer.min.js */ 触发弹层的事件可自由绑定,如: $('#id ...
- 横排列表(li)的左右对齐
效果如下: HTML代码如下: <div class="overdiv"> <ul> <li>1</li> <li>2& ...
- SpringBoot切面控制业务逻辑
业务逻辑:写一个公共拦截类,过滤传进Controller的参数 为了调用接口安全起见,每个需要调用的接口有一个参数accessToken,用于安全验证 注:先进入过滤器Filter,再进入aop,最后 ...
- 【javascript】详解变量,值,类型和宿主对象
前言 我眼中的<javascript高级程序设计> 和<你不知道的javascript>是这样的:如果<javascript高级程序设计>是本教科书的话, < ...
- 基于pytorch的CNN、LSTM神经网络模型调参小结
(Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...
- 一篇文章读懂Java类加载器
Java类加载器算是一个老生常谈的问题,大多Java工程师也都对其中的知识点倒背如流,最近在看源码的时候发现有一些细节的地方理解还是比较模糊,正好写一篇文章梳理一下. 关于Java类加载器的知识,网上 ...
- 帆软的报表系统与泛微OA结合起来,这两个软件麦枫提供了经典的服务。
一.集成配景泛微OA对企业的代价 泛微协同办公计划能向你供给一个协同的.集成的办公情况,使所有的办公职员都在统一且个性化的信息流派中一路事情, 解脱光阴和地区的限定,实现协同事情与知识治理. Eoco ...