在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作
在Java中使用标准输入输出设备进行字符串、整数浮点数等的输入输出操作
在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedReader,Scanner(JDK1.5以上)Console(JDK1.6以上)这三个类和System.in、System.out对象进行(包装设计模式)操作。(更好的阅读体验,请移步我的个人博客)
A,数据从控制台的读入
一、利用BufferedReader从键盘读取数据:
1,读取字符串:
public static void readThroughBufferedReader()throws IOException{BufferedReader bufferedReader = new BufferedReader(newInputStreamReader(System.in));String readFromConsole = bufferedReader.readLine();//读取一行字符串in tread = bufferedReader.read();//读取一个字符,返回字符的ASCII; }
注:在这种情况下要是想进行连续的整数读入(浮点数一样,以‘,’分割各个数据),并赋值给相应的变量,可采用正则表达式对字符串进行分割,当然也可以采用其他的方法,下面以正则表达式为例:
public static void readThroughBufferedReader()throws IOException{BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));String readFromConsole = bufferedReader.readLine();String[] words = readFromConsole.split(",");//使用正则表达式进行字符串的分割float[] x = new float[words.length];for (int i = 0; i < words.length; i++) {x[i] = Float.parseFloat(words[i]);}for (float f : x) {System.out.print(f+" ");}}
二、利用Scanner从键盘读取数据:
1,读取一行数据:
public static void readThroughScanner() {Scanner scanner = new Scanner(System.in); String bString = scanner.nextLine();String aString = scanner.next();System.out.println("aString: " +aString);System.out.println("bString: " +bString); }
注:注意next和nextLine的区别,next以空格、回车符作为结束符,nextLine以回车符作为结束符,数据暂存在缓冲区中(所以,如果用next,数据数据含有空格,那么空格后的数据会作为二次输入结果)。
2,读取integer或float 型数据:
public static void readThroughScanner() {Scanner scanner = new Scanner(System.in); float a = scanner.nextFloat();int b = scanner.nextInt();System.out.println("a = " + a + ",b = " + b);}
三、利用System.in从键盘读取数据:
public static void read ThroughSystemIn()throws IOException {int c = System.in.read();//读取的是ASCII,可进行强转成字符型}
B,数据从显示屏的输出
一、使用System.out对象进行数据的输出:
public static void writeThroughSystemOut() {int x = 0;double y = 3.2;System.out.println("这是以字符串对象的形式输出");System.out.println(x);//输出整数System.out.printf("%d%s %.2f %+f",x,"这是以字符串对象的形式输出",y,y);//格式化输出,详细参考printf()函数 }
二、利用BufferedWriter从屏幕输出数据:
public static void writeThroughBufferedWriter()throws IOException {BufferedWriterbuffered Writer = new BufferedWriter(newOutputStreamWriter(System.out));bufferedWriter.write("这个是使用BufferedWriter");bufferedWriter.newLine();bufferedWriter.write('a');bufferedWriter.flush(); }
三、利用Console从屏幕输出数据:
public static void writeThroughConsole() throwsIOException {Console console = System.console();PrintWriterprint Writer = console.writer();printWriter.write("mmmm");printWriter.flush(); }
注:Console对象在Eclipse等开发环境中可能获取不到,这时,会报异常,在操作系统自带的命令行下进行执行即可。
提示:注意System.in和System.out这两个对象的使用,标准输入设备和标准输出设备的对象。
如有疏漏或错误之处,欢迎批评指正,谢谢。
在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作相关推荐
- 在Java中,如何使一个字符串的首字母变为大写
问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...
- Java中如何使用“点”分割字符串呢?
下文笔者讲述Java代码中使用点分割字符串的方法分享,如下所示: 实现思路: 使用 字符串对象.split("\\.") 使用点分割字符串的示例分享 package com.jav ...
- Java中字节数组和十六进制字符串之间的转换
1. 概述 在本教程中,我们将看看将字节数组转换为十六进制字符串,反之亦然的不同方法. 我们还将了解转换机制并编写我们的实现来实现这一点. 2. 字节和十六进制之间的转换 首先,我们来看看字节和十六进 ...
- JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用
转载自 http://blog.csdn.net/bigtree_3721/article/details/51296064 JAVA 中无锁的线程安全整数 AtomicInteger,一个提供原子操 ...
- 在Java中哪里可以获得“UTF-8”字符串文字?
本文翻译自:Where to get "UTF-8" string literal in Java? I'm trying to use a constant instead of ...
- java中String值为空字符串与null的判断方法
Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表 ...
- java中判断一个字符在字符串中出现的次数
源代码: //java中判断一个字符出现的次数//在下面字符串中查找有几个啊public static void testFindChar(){String str = "啊!我爱你中国!啊 ...
- java中的greeting_JAVA基础知识——字符串
1.从概念上讲,JAVA字符串就死Unicode字符序列,JAVA没有内置的字符串类型,而是在标准JAVA类库中提供了一个预定义类,叫做String.字符串用""括起来 2.子串: ...
- Java中按字母顺序对字符串字符进行排序的4种不同方法
介绍 : 有时我们需要按字母顺序对字符串中的所有字符进行排序.由于String在Java中是不可变的,因此它将创建一个不同的字符串变量.例如,字符串" albert "在排序后将变 ...
最新文章
- 二、Silverlight中使用MVVM(二)——提高
- Android.mk 配置参数
- Mac环境下Redis的安装与配置
- 在浏览器中进行深度学习:TensorFlow.js (一)基本概念
- 水瓶座和什么座最配:天秤座,双子座,狮子座
- android 一个很漂亮的控件ObservableScrollView(含片段代码和源码)
- HDU多校4 - 6988 Display Substring(后缀自动机+二分)
- python提高——进程、线程、协程对比及代码实现
- Silverlight+WCF 新手实例 象棋 介绍II(九)
- 自定义char类型字段
- MacOS Big Sur 11.5.1 (20G80) OC 0.7.1 / Cl 5138 / PE 三分区原版黑苹果镜像
- 数据建模软件Chiner,颜值与实用性并存
- 基于MATLAB的AM调制解调
- kindle自定义屏保之自定义字帖
- codeblocks编译运行后出现无效的16位应用程序,不兼容64位windows
- 1024 程序员节,拿个勋章
- LaTeX插入参考文献
- Robocup3D第一次笔记
- 期货、股票行情、交易源码
- 第二章 大数据如此重要,引无数英雄竞折腰
热门文章
- Windows To Go,让Windows 8移动起来!
- [Altera在线教学].Altera SERDES应用教学,2小时10分钟,172张胶片
- 【DFS】LeetCode 52. N-Queens II
- Reactor模型-单线程版
- 在Adobe Html5 Extension的使用Nodejs的问题
- sqoop安装及使用
- mybatis 之 parameterType=list1
- Swift - 属性观察者(willSet与didSet)
- A Game USACO 3.3 (DP阵亡)
- iOS 程序 main函数之前发生什么