java程序设计-第2章-Java语言基础_第1页
java程序设计-第2章-Java语言基础_第2页
java程序设计-第2章-Java语言基础_第3页
java程序设计-第2章-Java语言基础_第4页
java程序设计-第2章-Java语言基础_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

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

文档简介

EclipseEclipse是一个Java的集成开发环境〔IDE〕,并且还是一个应用程序框架,可以通过开发插件,把Eclipse打造成各种应用软件。我们需要学习在具体的开发中以Eclipse为开发工具,开发基于Eclipse的应用软件。1.1Eclipse介绍经过多年的开展,Eclipse其实已经超越了“集成开发环境(IDE)”这个概念。“Eclipse”这个名词有着更多的含义:Eclipse是一个Java集成开发工具,是一个社区、一个基金会,也是一个应用软件平台。下面就来详细了解一下Eclipse的丰富内涵。1.1.1Eclipse是什么?Eclipse的官方网站上是这样定义的:“Eclipse是一个开放的社区,它的工程都是面对向建立一个开放的开发平台、包括可扩展框架、工具、运行时,用于构建、发布和管理软件工程的整个生命周期。一个由主要技术奉献者、大学机构、研究机构以及其他个体、组织所形成的巨大生态机构奉献、和支持着Eclipse平台”。Eclipse是一个开源社区:Eclipse是一个非赢利的基金会:Eclipse是一个软件应用平台,可以跨平台应用,包括可以在移动设备或者嵌入式设备中应用。Eclipse成为重要的开发平台,Eclipse技术能够在任何地方,被任何使用。1.1.2Eclipse的含义Eclipse的字面含义是“日蚀”。Eclipse的比较大的版本都是以木星的卫星名称作为代号的,已经用过的有:Callisto〔3.2〕,Europa〔3.3〕和Ganymede〔3.4〕1.1.3Eclipse的历史Eclipse的诞生可以追溯到IBM早期的开发工具VisualAgeforJava。IBM希望把VisualAgeforJava和WebSphereStudio集成到一起,打造一个与VisualStudio抗衡的开发平台。但因为VisualAgeforJava底层的技术比较脆弱,因此进一步开展非常艰难,无法满足业界应用开发的需求。于是IBM开始了下一代开发工具技术探索之路,并成立了一个工程开发小组。2000年,开发小组决定给新一代开发工具工程命名为Eclipse,Eclipse叫法当时只是内部使用的名称。2001年9月,Eclipse1.0发布了。11月,IBM向开源社区捐献了Eclipse代码,同时成立Eclipse协会〔EclipseConsortium〕,这个协会由一些成员公司组成,主要任务是支持并促进Eclipse开源工程。自此Eclipse在开发者社区得到飞速开展1.1.4哪些著名工程在使用Eclipse?越来越多的工程采用Eclipse的富客户端平台作为软件框架。IBM本身的几个大工程DB2,Rational,WebSphere,Lotus都是采用Eclipse作为软件框架。IBM的RationalApplicationDeveloper,它是使用Eclipse作为根底,然后在这根底上添加了建模插件、Web开发插件,还有其它更有价值的插件。LotusSymphony是由IBM推出的一套免费的办公软件,也是使用Eclipse为根底。当初Eclipse决定开展成为富客户端平台也是接受了Lotus工程组的建议。而通过LotusSymphony也可以看到Eclipse富客户端平台综合能力,不仅可以作为IDE还可以变成办公平台。1.1.5Eclipse的开展Eclipse方案未来在以下领域有所突破:覆盖软件开发的整个生命周期,包括需求管理、建模、数据管理、发布和系统管理。扩展富客户端平台〔RichClientPlatform,RCP〕,主要内容包括:嵌入式RCP,将RCP应用到诸如和PDA中。为创立RCP应用提供一个更完整的开发。加强RCP的新功能,诸如更新和管理功能。加强RCP插件模型的平安机制。提供基于RCP的应用框架。嵌入式。1.1.6Eclipse的开源协议EPLEclipse是开源软件,所谓开源,就是开放源代码,意思是任何人都可以自由地获得Eclipse的源代码。但是这种开源并不是毫无原那么,不讲版权的开源。相反,开源的根底就是“保存版权”——CopyLeft。现在Eclipse相关的许可证是大多数基于CommonPublicLicense(CPL),CPL是一个为OpenSourceInitiative(OSI)所认可的许可证。由于EclipseFoundation的建立,Eclipse的许可证将逐渐趋向于使用EclipsePublicLicense(EPL),EPL是一个与CPL相类似的许可证,正在进行OSI的认证工作。此外,Eclipse还涉及到多个开源工程和各类许可证,主要有ApacheSoftwareLicense、IBMPublicLicense、MetroLinkPublicLicense和MozillaPublicLicense。1.2.2获得EclipseEclipse是免费的,可以从Eclipse社区的网站上免费获得最新版的Eclipse。Eclipse社区的网址是。现在Eclipse社区上和Eclipse相关的工程已经非常多,在Eclipse可以下载到不同版本的、包含不同插件的、面向某种应用的Eclipse平台。1.2.3安装EclipseEclipse没有安装程序,也不需要安装,只要用Zip或者RAR等软件把Eclipse的软件包解压缩到指定的文件夹就可以了。例如可以解压缩到D:\eclipse中。然后双击eclipse.exe就可以运行Eclipse。因为不用安装、不需要在系统中注册任何信息,所以可以在磁盘上放置多个版本的Eclipse,可以根据需要,选用对应的版本。1.2.4了解Eclipse的文件结构在第一次运行Eclipse前,不妨先看看Eclipse的文件结构。1.3第一次运行EclipseEclipse安装完成后,运行一下,体验一下Eclipse的界面。Eclipse在第一次运行时会进行一下初始化,并且需要用户作一些设置。1.3.1splash屏幕双击eclipse.exe运行eclipse,很快可以看到Eclipse的splash窗口。1.3.2选择工作空间然后出现一个对话框,询问工作空间(workspace)的路径。所谓工作空间,就是保存用户配置数据和工程资源的文件夹。将来用Eclipse建立的所有开发工程都会默认保存到这个工作空间内。1.3.3开始首页插件装载完成后,就出现了Eclipse的欢送界面。如果你对欢送界面上提供的一些帮助感兴趣,那么可以点击进去看一下相关的内容。1.4了解Eclipse的主要插件想要了解Eclipse中安装了哪些插件,可以通过Help->AboutEclipsePlatform翻开“关于”对话框。如图1-13,在“关于”对话框里面可以看到一排小图标,每个小图标代码一个插件产品。但是并不是所有插件产品都会注册成一个图标。按Plug-inDetails可以看到已经安装的插件。1.5获得更多的帮助Eclipse社区为用户提供了很多便利,可以让用户和开发者快捷方便地获得各种帮助。下面了看一下可以从哪些地方获得更多的帮助。1.5.1Eclipse的帮助系统最直接的方式是利用Eclipse的帮助系统,利用Eclipse的帮助系统也可以获得不少有用的知识。翻开帮助系统很简单,和其他软件一样,也是通过Help->Content就可以翻开。1.5.2Eclipse的API文档帮助文档的内容倾向与教学,对于开发人员来说,尤其是熟悉Java编程的开发人员,最需要的是能阅读到JavaDOC格式的API参考文档,可以在开发的时候随时查阅。在帮助系统的内容中,包含了一局部API参考,但还不是全部。专业的用户可以自己从Eclipse的插件包中提取出API参考文档,以方便查阅。1.5.3获得Eclipse的源代码Eclipse的SDK版还包含了源代码,让开发者可以直接研究Eclipse的源代码。根据开源的协议,提供者在提供软件的同时还应该提供源代码,所以在Eclipse的发行包中,已经包含了Eclipse的源代码。提取源代码的方法和提取参考文档的方法一样,都是在plugins的文件夹中寻找相关的插件包。在plugins文件夹内,找到类似的插件包,同样用解压缩工具翻开,在里面就可以找到*.java文件。另外,在进行Java开发的时候,也可以通过相应的操作直接在JDT中翻开Eclipse的源代码.具体可以看第三章,JDT的使用中有介绍。1.6小结在这一章,我们对Eclipse作了一个大概的认识。了解了Eclipse的历史,知道了如何获得Eclipse,也学习了Eclipse安装。Eclipse是一个Java开发工具,也是一个软件平台,可以通过插件不断扩展Eclipse的功能。利用Eclipse,可以搭建出各种各样的应用程序。Eclipse最早由IBM创立,现在由专门的Eclipse基金会维护,并形成了一个Eclipse社区。是Eclipse社区的网站。在网站上可以获得Eclipse的最新开展动态,也可以下载最新版本的Eclipse。Eclipse是一个开源软件,可以免费获得,也可以自由分发。Eclipse社区提供了丰富的资源,向全球的Eclipse用户和开发这提供全面的支持。2.9字符界面应用程序设计举例例2.1

输入一个字符串,按逆序存储后输出。importjava.io.*;//C2_1.javaimportjava.util.Scanner;publicclassC2_1{publicstaticvoidmain(Stringargs[]){Strings=null;

Scannerin=newScanner(System.in);System.out.print("Inputastring:");s=in.next();//输入1个字符串2.9字符界面应用程序设计举例(续1)

intlen=s.length();Stringt="";for(inti=len-1;i>=0;i--)t=t+s.charAt(i);s=t;System.out.println("Reversedstring:\n"+s);}}2.8控制台输入/输出1.用Scanner类实现数据输入

(仅JDK1.50或更高版本支持)

用法:importjava.util.Scanner;

Scannerin=newScanner(System.in);Strings=in.next();//输入1个字符串(空格/Tab/换行分隔)Stringt=in.nextLine();//输入1个字符串(换行分隔)inta=in.nextInt();//输入1个整数

floatb=in.nextFloat();//输入1个单精度实数

doublec=in.nextDouble();//输入1个双精度实数2.8控制台输入/输出(续1)2.数据输出用法:importjava.io.*;System.out.print(字符串);//输出串不换行

System.out.println(字符串);//输出串并换行

System.out.println();//输出换行格式化输出方法*:(仅JDK1.50或更高版本支持)System.out.printf(格式串,表达式列表);格式符语法:%[参数索引$][标志][宽度][.精度]格式符2.7字符串处理

2.7.1定义字符串变量

Strings;Strings=newString();Strings="abcd";Strings=newString("abcd");2.7字符串处理(续1)

2.7.3字符串类String中的常用公有成员函数

intlength()

//求串长

charcharAt(intk)

//返回本串第k个字符(k从0开始)2.9字符界面应用程序设计举例(续1)例2.2

编程输出1000以内的全部素数。importjava.io.*;//C2_2.javaimportjava.lang.Math;publicclassC2_2{publicstaticvoidmain(Stringargs[]){intm,i,k;for(m=2;m<1000;m++){k=(int)Math.sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)System.out.print("\t"+m);}}}2.9字符界面应用程序设计举例(续2)2.1.9控制台应用程序设计举例(续3)例2.3

输入n个实数,建立数组,排序后输出。importjava.io.*;//C2_3.javaimportjava.util.Scanner;publicclassC2_3{publicstaticvoidmain(Stringargs[]){Scannerin=newScanner(System.in);System.out.print("请输入n=");inti,j,n=in.nextInt();

doublea[]=newdouble[n];System.out.print("请输入"+n+"个实数\n");

2.1.9控制台应用程序设计举例(续7)for(i=0;i<n;i++)a[i]=in.nextDouble();//输入n个实数

for(i=1;i<n;i++)//冒泡排序

for(j=0;j<n-i;j++)if(a[j]<a[j+1]){doubletmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}for(i=0;i<n;i++)System.out.print(a[i]+"");System.out.println();}//排序并输出结果}2.8控制台输入/输出1.用Scanner类实现数据输入

(仅JDK1.50或更高版本支持)

用法:importjava.util.Scanner;

Scannerin=newScanner(System.in);Strings=in.next();//输入1个字符串(空格/Tab/换行分隔)Stringt=in.nextLine();//输入1个字符串(换行分隔)inta=in.nextInt();//输入1个整数

floatb=in.nextFloat();//输入1个单精度实数

doublec=in.nextDouble();//输入1个双精度实数2.5数组的定义与使用2.5.1一维数组定义数组名标识符syntax:T数组名[];//T表示数据类型名T[]数组名;例:inta[];doubleb[];2.创立数组空间与元素值初始化方法1:定义数组名标识符时给出数组所有元素。例:floata[]={0.0f,0.1f,0.2f,0.3f};//数组a有4个元素(2)方法2:使用new运算符定义数组名时直接使用newsyntax:T数组名[]=newT[元素个数];2.5数组的定义与使用(续1)

例:floata[]=newfloat[10];//数组a有10个元素

先定义数组名再使用new

syntax:数组名=newT[元素个数];

例:floata[];a=newfloat[10];//数组a有10个元素已分配空间的数组可以用new重新分配空间例:doublea[]=newdouble[5];//数组a有5个元素

…a=newdouble[10];//数组a重新分配10个元素用new建立存储空间的数组元素初值按表2.2赋值2.5数组的定义与使用(续2)

3.一维数组元素的访问(1)下标表达式同C语言(从0开始)(2)下标超界产生一个异常(3)一维数组长度(元素个数)表达式

syntax:一维数组名.length

例:inta[]=newint[5];intn=a.length;//变量n的值为52.9字符界面应用程序设计举例(续8)例2.4

矩阵转置。importjava.io.*;//C2_4.javapublicclassC2_4{publicstaticvoidRs(int[][]a)//或inta[][]{introws=a.length,i,j,t;for(i=0;i<rows;i++)for(j=0;j<i;j++) {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}2.9字符界面应用程序设计举例(续9)publicstaticvoidmain(String[]args){inta[][]={{1,2,3},{4,5,6},{7,8,9}};inti,j,rows=a.length,cols=a[0].length;

C2_4.Rs(a);for(i=0;i<rows;i++){for(j=0;j<cols;j++)System.out.printf("%6d",a[i][j]);System.out.println();}}}2.5数组的定义与使用(续2)2.5.2二维数组定义二维数组并创立数组存储空间例:syntax1:inta[][];a=newint[3][4];syntax2:inta[][]=newint[3][4];syntax3:inta[][]={{1,2,3},{4,5,6},{7,8,9}};2.5数组的定义与使用(续3)

syntax4:各行单独分配维度大小

intline_num=4;inta[][]=newint[line_num][];a[0]=newint[1];a[1]=newint[2];a[2]=newint[3];a[3]=newint[4];

2.二维数组元素的访问:同C语言2.5.3多维数组例:inta[][][]=newint[3][3][3];第二章Java语言编程根底Java语言的大部份语法与C语言相同;本章红色文字标出了与C语言的不同。2.1标识符与关键字2.8控制台输入/输出2.2根本数据类型2.9程序设计举例2.3常量与变量2.4运算符与表达式2.5数组的定义与使用2.6Java语言的语句2.7字符串处理2.1标识符与关键字1.标识符的语法规定〔1〕标识符是由字母、数字、下划线(_)以及美元符号($)组成的字符串;〔2〕标识符必须以字母、下划线(_)或者美元符号($)开头;〔3〕标识符中的英文字母大小写有区别。大小写约定:变量名小写开头;类名大写开头.2.关键字(略)2.2根本数据类型2.2.1Java数据类型分类简单类型整型、浮点型、字符型、布尔(逻辑)型引用类型类、数组、接口2.2.2Java简单数据类型注意:字符型采用16位的Unicode编码2.2根本数据类型〔续1〕2.3常量与变量

2.3.1Java常量整型常量十进制:同C语言例:015

108(2)八进制:同C语言(以0开头的整数)

例:070101(3)十六进制:同C语言(以0x或者0X开头)

例:0xAF0X90be//英文字母大小写无区别(4)整型常量的后缀字母:l或者L

例:0(int型,32bits)0L(long型,64bits)2.3常量与变量(续1)注意:Java语言不提供无符号整数2.布尔(逻辑)型常量truefalse3.字符型常量〔同C语言〕(1)单引号括起来的普通字符例:'A''?''#'(2)单引号括起来的换码(转义)字符'\n'换行'\r'回车'\''单引号'\"'双引号2.3常量与变量(续2)'\\'反斜杠'\ddd'1~3位八进制编码'\uxxxx'1~4位十六进制编码(Unicode编码)4.字符串型常量〔同C语言〕例:""//空串"ABCD"“\n\n”//串中可以使用字符换码2.3常量与变量(续3)5.实型常量〔同C语言〕(1)小数形式:例:0.5-10.52(2)指数形式:例:1e-710e+8-0.085e-003(3)实型常量的后缀字母:f(F),d(D)例:0.5f或者0.5F(float型,32bits)0.5(double型,64bits)0.5d或者0.5D(double型,64bits)2.3常量与变量(续4)6.符号常量〔类中常成员变量〕格式:final符号常量名=常量表达式;例:finaldoublePI=3.1415926;finalintMAX=100;Java约定符号常量(常变量)的值在程序中不能被修改,并且约定常量标识符全部用大写字母表示。2.3常量与变量(续5)2.3.2Java变量Java变量的定义位置(1)类中的成员变量(2)函数体和复合语句体中的局部变量Java程序中不允许在类定义之外定义全局变量,即Java语言没有全局变量的概念;Java没有指针类型的变量,从而提高了程序的可读性和平安性。2.类中成员变量的定义形式:见后续面向对象编程3.Java局部变量的定义形式:同C++(随用随定义)例:inta=5,b;doublex,y=Math.sqrt(2);假设局部变量定义时不初始化或者未经赋值就使用该变量,编译报错。2.4Java运算符与表达式

2.4.1Java运算符算术运算符:

/%

关系运算符:><>=<==

=!=(布尔结果)逻辑运算符:!&&||&|^(布尔结果)位运算符:>><<>>>&|^~赋值与自反赋值运算符:=+===/=%=&=|=^=>>=<<=>>>=类型强制转换运算符:(类型名)实例运算符:instanceof内存分配运算符:new条件运算符:式1?式2:式32.4Java运算符与表达式(续1)说明:(1)逻辑运算符中,&&与&的区别:&&具有短路功能,即(逻辑式1)&&(逻辑式2)假设逻辑式1结果为false,那么不再计算逻辑式2;假设使用&运算符,那么逻辑式1和逻辑式2均要计算。(2)逻辑运算符中,||与|的区别:||具有短路功能,即(逻辑式1)||(逻辑式2)假设逻辑式1结果为true,那么不再计算逻辑式2;假设使用|运算符,那么逻辑式1和逻辑式2均要计算。建议:逻辑表达式中只使用!&&和||.2.4Java运算符与表达式(续2)

(3)位运算符中>>>的含义:

不带符号位右移建议:可以不用掌握>>>。运算优先级:同C运算符2.4.2Java表达式举例将下面的数学表达式写成Java表达式.importjava.lang.Math;…(-b+Math.sqrt(b*b-4*a*c))/(2*a)(2)求浮点型变量x的小数部份。2.4Java运算符与表达式(续3)x-(int)x(3)求一个整型变量a的百位数字如:inta=1234;那么表达式返回值为2a/100%10(4)判断年号y是否为闰年y%4==0&&y%100!=0||y%400==02.5数组的定义与使用2.5.1一维数组定义数组名标识符syntax:T数组名[];//T表示数据类型名T[]数组名;例:inta[];doubleb[];2.创立数组空间与元素值初始化方法1:定义数组名标识符时给出数组所有元素。例:floata[]={0.0f,0.1f,0.2f,0.3f};//数组a有4个元素(2)方法2:使用new运算符定义数组名时直接使用newsyntax:T数组名[]=newT[元素个数];2.5数组的定义与使用(续1)

例:floata[]=newfloat[10];//数组a有10个元素

先定义数组名再使用new

syntax:数组名=newT[元素个数];

例:floata[];a=newfloat[10];//数组a有10个元素已分配空间的数组可以用new重新分配空间例:doublea[]=newdouble[5];//数组a有5个元素

…a=newdouble[10];//数组a重新分配10个元素用new建立存储空间的数组元素初值按表2.2赋值2.5数组的定义与使用(续2)3.一维数组元素的访问(1)下标表达式同C语言(从0开始)(2)下标超界产生一个异常(3)一维数组长度(元素个数)表达式syntax:一维数组名.length例:inta[]=newint[5];intn=a.length;//变量n的值为52.5.2二维数组定义二维数组并创立数组存储空间例:syntax1:inta[][];a=newint[3][4];syntax2:inta[][]=newint[3][4];syntax3:inta[][]={{1,2,3},{4,5,6},{7,8,9}};2.5数组的定义与使用(续3)

syntax4:各行单独分配维度大小

intline_num=4;inta[][]=newint[line_num][];a[0]=newint[1];a[1]=newint[2];a[2]=newint[3];a[3]=newint[4];

2.二维数组元素的访问:同C语言2.5.3多维数组例:inta[][][]=newint[3][3][3];2.6Java语言的语句

2.6.1控制语句

同C语言2.6.2程序注释同C++语言单行注释://…多行注释:/*…*/2.6.2函数定义与复合语句同C++语言2.7字符串处理

2.7.1定义字符串变量

Strings;Strings=newString();Strings="abcd";Strings=newString("abcd");Java语言中,所有字符采用unicode编码:字符串"ABCD"的长度为4,"你好"的长度为2。在C语言中,两者串长都是4。特定的网页以及操作系统有特定的字符代码页,如:ASP网页中,字符串“啊啊”的长度可能是4也可以是2,由网页指定的charset属性决定。请上网自学:unicode,GB2312,GBK,UTF代码。2.7Java字符串(续1)

2.字符串连接运算符+

例:Strings;s="abc"+"xyz";inta=10;System.out.println("a="+a);/*字符串与其它类型变量相加其它类型自动转换为字符串*/2.7字符串处理(续1)2.7.3字符串类String中的常用公有成员函数intlength()//求串长intcompareTo(Stringt)//比较两串大小本串<串t,返回负数本串>串t,返回正数本串=串t,返回0StringtoLowerCase()//本串大写英文变成小写StringtoUpperCase()//本串小写英文变成大写

2.7字符串处理(续2)

inttrim()

//去掉本串字符串中的前导与末尾的空格

charcharAt(intk)

//返回本串第k个字符(k从0开始)

Stringreplace(charoldChar,charnewChar)

//本串所有oldChar字符替换为newChar字符

Stringreplace(StringoldStr,StringnewStr)

//本串所有oldStr字符替换为newStr串

Stringsubstring(intk)

//从位置k处提取子串到串结束,生成新串

Stringsubstring(intstart,intend)

//从位置start到end提取子串,生成新串2.7字符串处理(续3)

字符与子串查找

intindexOf(intch)//字符ch第一次出现的位置号

intindexOf(StringSubStr)intindexOf(intch,intfromIndex)intidexOf(StringSubStr,intfromIndex)intlastIndexOf(intch)//字符ch最后一次出现的位置

intlastIndexOf(StringSubStr)intlastIndexOf(intch,intfromIndex)intlastIndexOf(StringSubStr,intfromIndex)2.7字符串处理(续4)

2.7.4字符串与其它数据类型的转换方法数据类型类

2.数值转换为串

syntax:数值类型类名.toString(该数值表达式);2.7字符串处理(续5完)例:doublea=-100.575;intb=123;Strings=Double.toString(a);Stringt=Integer.toString(b);System.out.println("a="+Double.toString(a+1));3.串转换为数值

syntax:数据类型类名.parse首字母大写类型名(串表达式);Strings="258";inta=Integer.parseInt(s);

//VJ++6.0不支持parse函数2.8控制台输入/输出1.用Scanner类实现数据输入

(仅JDK1.50或更高版本支持)

用法:importjava.util.Scanner;

Scannerin=newScanner(System.in);Strings=in.next();//输入1个字符串(空格/Tab/换行分隔)Stringt=in.nextLine();//输入1个字符串(换行分隔)inta=in.nextInt();//输入1个整数

floatb=in.nextFloat();//输入1个单精度实数

doublec=in.nextDouble();//输入1个双精度实数2.8控制台输入/输出(续1)2.数据输出用法:importjava.io.*;System.out.print(字符串);//输出串不换行

System.out.println(字符串);//输出串并换行

System.out.println();//输出换行格式化输出方法*:(仅JDK1.50或更高版本支持)System.out.printf(格式串,表达式列表);格式符语法:%[参数索引$][标志][宽度][.精度]格式符2.8控制台输入/输出(续2)格式符d:十进制整数o:八进制整数x:十六进制整数f:十进制小数格式浮点数e:十进制指数格式浮点数g:自动格式浮点数a:十六进制小数s:字符串c:字符b:布尔值h:散列码tx:日期时间(x为3~7整数)%:输出%2.8控制台输入/输出(续3)(2)宽度精度同C语言(3)标志+:强制输出正数的正号-:输出域中向左对齐0:缺乏域宽用0占位(:正数不变,负数求绝对值用括号括起来,:千分位分隔符$:如%1$d%1$x表示用十和十六进制输出第1个参数<:用前面一个参数继续输出2.8控制台输入/输出(续4完)例1:inta=1,b=2,c=3;System.out.printf("a=%d,b=%d\nc=%4d",a,b,c);输出为:a=1,b=2c=3例2:inta=255,b=10;System.out.printf("%1$d%1$x,%2$d",a,b);输出为:255ff,10例3:floatx=0.256f;System.out.printf("%.2f,%<e",x);输出为:0.26,2.560000e-012.9字符界面应用程序设计举例例2.1

输入一个字符串,按逆序存储后输出。importjava.io.*;//C2_1.javaimportjava.util.Scanner;publicclassC2_1{publicstaticvoidmain(Stringargs[]){Strings=null;

Scannerin=newScanner(System.in);System.out.print("Inputastring:");s=in.next();//输入1个字符串2.9字符界面应用程序设计举例(续1)

intlen=s.length();Stringt="";for(inti=len-1;i>=0;i--)t=t+s.charAt(i);s=t;System.out.println("Reversedstring:\n"+s);}}例2.2

编程输出1000以内的全部素数。importjava.io.*;//C2_2.javaimportjava.lang.Math;publicclassC2_2{publicstaticvoidmain(Stringargs[]){intm,i,k;for(m=2;m<1000;m++){k=(int)Math.sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)System.out.print("\t"+m);}}}2.9字符界面应用程序设计举例(续2)2.1.9控制台应用程序设计举例(续3)例2.3

输入n个实数,建立数组,排序后输出。importjava.io.*;//C2_3.javaimportjava.util.Scanner;publicclassC2_3{publicstaticvoidmain(Stringargs[]){Scannerin=newScanner(System.in);System.out.print("请输入n=");inti,j,n=in.nextInt();

doublea[]=newdouble[n];System.out.print("请输入"+n+"个实数\n");

2.1.9控制台应用程序设计举例(续7)for(i=0;i<n;i++)a[i]=in.nextDouble();//输入n个实数

for(i=1;i<n;i++)//冒泡排序

for(j=0;j<n-i;j++)if(a[j]<a[j+1]){doubletmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}for(i=0;i<n;i++)System.out.print(a[i]+"");System.out.println();}//排序并输出结果}2.9字符界面应用程序设计举例(续8)例2.4

矩阵转置。importjava.io.*;

温馨提示

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

评论

0/150

提交评论