一、比较传统的输入方法用输入流,得到字符串后要另行判断、转换

案例

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控制台输入输出的更多相关文章

  1. JAVA控制台输入输出方法总结

    java的控制台输入输出有很多方法,此文分别对其进行介绍. 1.控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法, ...

  2. java控制台输入输出字符串

    一.实例说明 本实例通过输入流(System.in)实现从控制台接受用户输入信息,并将该信息输出到控制台. 运行效果如下图: 二.实现代码 三.要点说明 该实例的关键就是用到了System类的输入流, ...

  3. 关于Java控制台输入输出乱码问题

    产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误( ...

  4. 小学生四则运算出题软件-基于java控制台的实现

    .题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...

  5. java控制台输入

    一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...

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

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

  7. Java 控制台输入数字 输出乘法表(代码练习)

    最近,回忆了一些刚学习Java时经常练习的一些小练习题.感觉还是蛮有趣的,在回顾时想起好多学习时的经历和坎坷,一道小小的练习题要研究半天,珍重过往,直面未来.下面贡献代码,Java 控制台输入数字 输 ...

  8. java控制台输入带空格的字符串

    java控制台输入带空格的字符串 Scanner sc = new Scanner(System.in); String str = sc.nextLine();

  9. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

随机推荐

  1. fedora20 安装搜狗输入法及各种问题的解决

    http://blog.csdn.NET/g457499940/article/details/38656719 0 环境描述: 系统环境:Fedora20 64位 截止2014年09月 8日17:5 ...

  2. Windows8.1 与Ubuntu14.04双系统

    机型:联想 Y480 现有操作系统:win8.1 64位 物理内存:8G 磁盘存储:两个硬盘 1. SSD为固态盘 Solid State Drives  110G   现已安装有win8系统 2.H ...

  3. 借助扩展事件查看SQL 2016备份和还原操作的内幕

    当遇到备份或者还原操作占用较长时间时,很多人会问: 备份/还原是不是僵死了?要不要kill掉,再重来? 到底是哪一个部分的操作占用较长时间? 到底现在进行到什么阶段了? 在SQL 2016 之前,要回 ...

  4. 接口测试 mock server 工具moco学习笔记

    看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco  ,  到QuickStart ...

  5. Html5笔记之小结

    随着Android,IOS手机,平板等各种App的不断扩增,加上对过去传统HTML的的各种不完善,例如视频依靠Flash,对手机和桌面的不兼容等等.HTML5来了,来解决这些问题了. Html5是W3 ...

  6. Spring-MVC请求参数值和向页面传值

    读取请求参数值 方式一:通过HttpServletRequest req做参数 DispatcherServlet在调用处理的方法之前,利用Java反射分析方法的结构,通过分析,将req对象传过来 方 ...

  7. 物联网socket通讯设备android

    http://cache.baiducontent.com/c?m=9d78d513d99c16ee19bec1291a17a7384215c634608090027ea48439e573284b50 ...

  8. protobuf和thrift对比

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt383 数据类型 protobuf thrift protobuf thrif ...

  9. ELM极限学习机

    极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解神经网络算法.ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),ELM比传统的 ...

  10. Android微信登录、分享、支付

    转载需要著名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 之前写过微信登录分享支付第一版: http://bl ...