Java程序设计-2-2-输入和输出_第1页
Java程序设计-2-2-输入和输出_第2页
Java程序设计-2-2-输入和输出_第3页
Java程序设计-2-2-输入和输出_第4页
Java程序设计-2-2-输入和输出_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基本输入输出方法基本输入输出方法1JavaJava程序设计程序设计22.5 2.5 基于文本的输入输出基于文本的输入输出u控制台控制台输入输出即在命令行窗口下的键盘输入和显输入输出即在命令行窗口下的键盘输入和显示输出。示输出。u1.1.利用利用ScannerScanner类类实现键盘输入实现键盘输入 u2.2.利用利用ConsoleConsole类实现键盘输入类实现键盘输入 u3.3.利用利用System.outSystem.out对象提供的对象提供的输出输出1. 1.利用利用ScannerScanner类实现键盘输入类实现键盘输入uScannerScanner类类uScannerScanne

2、r类属于类属于java.utiljava.util包,全名是包,全名是java.util.Scannerjava.util.Scanner。uScannerScanner类用于从键盘、文本文件、字符串等对象中的文类用于从键盘、文本文件、字符串等对象中的文本信息中本信息中“扫描扫描”JavaJava的标准数据或字符串类型。的标准数据或字符串类型。u创建创建ScannerScanner对象对象Scanner Scanner = new Scanner( = new Scanner(数据源数据源););u如:如:Scanner sc1 = new Scanner(System.in); 创建了一个名

3、为创建了一个名为sc1sc1的的ScannerScanner对象,用于从控制台输入对象,用于从控制台输入(System.inSystem.in,默认为键盘)数据。,默认为键盘)数据。u如:如:Scanner sc2 = new Scanner(”1 2 3 4.0”); 创建了一个名为创建了一个名为sc2sc2的的ScannerScanner对象,用于从字符串对象,用于从字符串“1 1 2 3 4.02 3 4.0”提取数据。提取数据。3常用的利用常用的利用ScannerScanner类实现键盘输入类实现键盘输入u首先,创建首先,创建ScannerScanner的一个对象,扫描数据来的一个对象

4、,扫描数据来自键盘输入。自键盘输入。uScanner sc=new Scanner(System.in);Scanner sc=new Scanner(System.in);u其次,通过调用扫描对象的方法实现输入。其次,通过调用扫描对象的方法实现输入。uint num=sc.nextInt();int num=sc.nextInt();u最后,调用对象的最后,调用对象的close()close()方法关闭输入。方法关闭输入。usc.close();sc.close();5/ 程序:利用Scanner类实现键盘输入import java.util.Scanner;public class Sca

5、nnerDemo public static void main(String args) Scanner sc=new Scanner(System.in);System.out.println(请输入一个整数,敲回车结束);int num=sc.nextInt();System.out.println(你输入了一个:+num);System.out.println(请输入一个字符串,敲回车结束);String s=sc.next();System.out.println(你输入了字符串:+s);sc.close(); 6ScannerScanner方法方法方法名方法名返回类型返回类型功能功

6、能nextByte()byte按照指定的基本数据类型输入下一个数据,空格、Tab、Enter可作为输入扫描分隔符。nextShort()shortnextInt()IntnextLong()longnextFloat()floatnextDouble()doublenext()String输入下一个字符串(其中不能有空格)nextLine()String输入一行中的剩余部分为字符串close()关闭输入键盘输入以键盘输入以Enter结束一行输入,结束一行输入,Enter后按照程序执行后按照程序执行顺序开始顺序开始“扫描扫描”过程,一行信息中可以包含多个输入值,过程,一行信息中可以包含多个输入值

7、,用用Tab或或“空格空格”分隔。分隔。nextLine()输入一行剩余部分。输入一行剩余部分。输入结束需要输入结束需要close()方法关闭输入。方法关闭输入。ScannerTest.java7int iV1;float fV1, fV2;double dV1, dV2;String sS1, sS2;Scanner sc = new Scanner(System.in);iV1 = sc.nextInt();fV1 = sc.nextFloat();fV2 = sc.nextFloat();dV1 = sc.nextDouble();dV2 = sc.nextDouble();sS1 =

8、sc.next();sS2 = sc.nextLine();System.out.println(iV1 = + iV1);System.out.println(fV1 = + fV1);System.out.println(fV2 = + fV2);System.out.println(dV1 = + dV1);System.out.println(dV2 = + dV2);System.out.println(sS1 = + sS1);System.out.println(sS2 = + sS2);sc.close();iV1iV1fV1fV1fV2fV2dV1dV1dV2dV2sS1sS

9、1、sS2sS2iV1iV1、fV1fV1fV2fV2、dV1dV1、dV2dV2sS1sS1、sS2sS2键盘输入显示输出键盘输入显示输出注意:在注意:在NetBeans下,下,文件文件项目属性项目属性编码编码设置为设置为GBK才能正常输入汉字。才能正常输入汉字。ScannerScanner方方法例法例2.2.利用利用ConsoleConsole类实现键盘输入类实现键盘输入 u利用利用ConsoleConsole对象可访问与当前对象可访问与当前 Java Java 虚拟机虚拟机关联的基于字符的控制台设备,主要提供了基关联的基于字符的控制台设备,主要提供了基于控制台的格式化读取及密码读取功能于

10、控制台的格式化读取及密码读取功能 /程序:利用Console类实现键盘输入import java.io.Console;public class ConsoleDemo public static void main(String args) Console cons =System.console();String account=cons.readLine(请输入账号);char pwd=cons.readPassword(请输入密码);3.3.利用利用System.outSystem.out对象提供的对象提供的输出输出uprint print uprintprint是是PrintStre

11、amPrintStream类提供的一种输出方法,支持类提供的一种输出方法,支持booleanboolean、charchar、charchar、doubledouble、floatfloat、intint、longlong、shortshort、StringString、ObjectObject的直接输出的直接输出uprintln println uprintlnprintln方法不同于方法不同于printprint的主要之处在于将输出信息打印完的主要之处在于将输出信息打印完之后,还要写出行分割字符串,默认情况下,这个行分割字之后,还要写出行分割字符串,默认情况下,这个行分割字符串是符串是nn

12、,即输出一个换行回车。,即输出一个换行回车。 uprintfprintfuprintfprintf则是一种格式化输出,类似于则是一种格式化输出,类似于c c语言的语言的printf()printf(),实现,实现了对布局对齐和排列的支持,以及对数值、字符串和日期了对布局对齐和排列的支持,以及对数值、字符串和日期/ /时时间数据的常规格式和特定于语言环境的输出的支持间数据的常规格式和特定于语言环境的输出的支持 1.1. print()print()方法方法uprintprint是是PrintStreamPrintStream类提供的一种输出方法,支持类提供的一种输出方法,支持booleanboo

13、lean、charchar、charchar、doubledouble、floatfloat、intint、longlong、shortshort、StringString、ObjectObject的直接输出,例如:的直接输出,例如:uint i = 100;int i = 100;uboolean status = true;boolean status = true;uString str = Welcome;String str = Welcome;u.uSystem.out.print(i);System.out.print(i);uSystem.out.print(status);S

14、ystem.out.print(status);uSystem.out.print(str);System.out.print(str);u利用利用print()print()方法输出需要注意的是,每次输出均紧接在方法输出需要注意的是,每次输出均紧接在上一次输出的位置,中间没有分隔符。上一次输出的位置,中间没有分隔符。2.2. println()println()方法方法uprintlnprintln方法不同于方法不同于printprint的主要之处在于将输出信息的主要之处在于将输出信息打印完之后,还要输出行终止符,默认情况下,这个打印完之后,还要输出行终止符,默认情况下,这个行行终止符是行行

15、终止符是nn,即输出一个换行。类似的,即输出一个换行。类似的,uint i = 100;int i = 100;uboolean status = true;boolean status = true;uString str = Welcome;String str = Welcome;u.uSystem.out.println(i);System.out.println(i);uSystem.out.println(status);System.out.println(status);uSystem.out.println(str);System.out.println(str);uprin

16、t()print()和和println()println()方法对接受的参数均转换成字符方法对接受的参数均转换成字符串输出,因此,类似于下面的输出:串输出,因此,类似于下面的输出:uSystem.out.println(i=+i);System.out.println(i=+i);u表示字符串表示字符串“i=”i=”再连接上变量再连接上变量i i的值传换成的字符串输出。的值传换成的字符串输出。printfprintf方法方法public class TestPrintf public static void main(String args) int i = 100;boolean statu

17、s = true;String str = Welcome;System.out.printf(%d %b %s,i,status,str);格式字符串格式字符串 产生格式化输出的每个方法都需要产生格式化输出的每个方法都需要格式字符串格式字符串 和和参参数列表数列表。格式字符串是一个。格式字符串是一个 StringString,它可以包含固,它可以包含固定文本以及一个或多个嵌入的定文本以及一个或多个嵌入的格式说明符格式说明符。请考虑以。请考虑以下示例:下示例: uCalendar c = .; Calendar c = .; uString s = String.format(Dukes Bi

18、rthday: String s = String.format(Dukes Birthday: %1$tm %1$te,%1$tY, c); %1$tm %1$te,%1$tY, c); 这里包含三个格式说明符这里包含三个格式说明符 “ “%1$tm”%1$tm”、“%1$te” %1$te” 和和 “%1$tY”%1$tY”,它们指出应该如何处理参数以及在文本,它们指出应该如何处理参数以及在文本的什么地方插入它们。的什么地方插入它们。格式字符串的其余部分是包括格式字符串的其余部分是包括 Dukes Birthday: Dukes Birthday: 和其他任何空格或标点符号的固定文本。和其

19、他任何空格或标点符号的固定文本。表 主要的对应格式转换转换 参数类别参数类别 说明说明 b, B 常规常规 如果参数如果参数 arg 为为 null,则结果为,则结果为 false。如果。如果 arg 是一个是一个 boolean 值或值或 Boolean,则结果,则结果为为 String.valueOf() 返回的字符串。否则结果为返回的字符串。否则结果为 true。 h, H 常规常规 如果参数如果参数 arg 为为 null,则结果为,则结果为 null。否则,结果为调用。否则,结果为调用 Integer.toHexString(arg.hashCode() 得到的结果。得到的结果。 s

20、, S 常规常规 如果参数如果参数 arg 为为 null,则结果为,则结果为 null。如果。如果 arg 实现实现 Formattable,则调用,则调用 arg.formatTo。否则,结果为调用。否则,结果为调用 arg.toString() 得到的结果。得到的结果。 c, C 字符字符 结果是一个结果是一个 Unicode 字符字符 d 整数整数 结果被格式化为十进制整数结果被格式化为十进制整数 o 整数整数 结果被格式化为八进制整数结果被格式化为八进制整数 x, X 整数整数 结果被格式化为十六进制整数结果被格式化为十六进制整数 e, E 浮点浮点 结果被格式化为用计算机科学记数法

21、表示的十进制数结果被格式化为用计算机科学记数法表示的十进制数 f 浮点浮点 结果被格式化为十进制数结果被格式化为十进制数 g, G 浮点浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。 a, A 浮点浮点 结果被格式化为带有效位数和指数的十六进制浮点数结果被格式化为带有效位数和指数的十六进制浮点数 t, T 日期日期/时间时间 日期和时间转换字符的前缀。请参阅日期和时间转换字符的前缀。请参阅日期日期/时间转换时间转换。 % 百分比百分比 结果为字面值结果为字面值 % (u0025)

22、 n 行分隔符行分隔符 结果为特定于平台的行分隔符结果为特定于平台的行分隔符 提示提示常规类型、字符类型和数值类型的格式说明符的语法如下:常规类型、字符类型和数值类型的格式说明符的语法如下: u %argument_index$flagswidth.precisionconversion%argument_index$flagswidth.precisionconversionu可选的可选的 argument_index argument_index 是一个十进制整数,用于表明参数在参数列是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由表中的位置。第一个参数由 1$ 1$ 引用,

23、第二个参数由引用,第二个参数由 2$ 2$ 引用,引用,依此类推。依此类推。 u可选可选 flags flags 是修改输出格式的字符集。有效标志集取决于转换类型。是修改输出格式的字符集。有效标志集取决于转换类型。 u可选可选 width width 是一个非负十进制整数,表明要向输出中写入的最少字符是一个非负十进制整数,表明要向输出中写入的最少字符数。数。 u可选可选 precision precision 是一个非负十进制整数,通常用来限制字符数。特定是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。行为取决于转换类型。 u所需所需 conversion conversio

24、n 是一个表明应该如何格式化参数的字符。给定参数是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数据类型。的有效转换集取决于参数的数据类型。 用来表示日期和时间类型的格式说明符的语法如下:用来表示日期和时间类型的格式说明符的语法如下: u %argument_index$flagswidthconversion%argument_index$flagswidthconversion与参数不对应的格式说明符的语法如下:与参数不对应的格式说明符的语法如下:u%flagswidthconversion %flagswidthconversion char cV1=A, cV2=和;byte bV1=10, bV2=-100;int iV1=1000, iV2=-2000;float fV1=123E2F, fV2=123E-5F;System.out.printf(%10c %10c%n,cV1, cV2);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论