Java程序设计语言第六单元.docx
- 文档编号:13386651
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:20
- 大小:40.06KB
Java程序设计语言第六单元.docx
《Java程序设计语言第六单元.docx》由会员分享,可在线阅读,更多相关《Java程序设计语言第六单元.docx(20页珍藏版)》请在冰点文库上搜索。
Java程序设计语言第六单元
一、边读边做
1、填空:
(1)程序设计中,是一种表示的常用手段。
是一种表示姓名、提示信息等类似数据的常见形式。
Java语言为数组类型与字符串都字义了相应的标准类型,是实现数组类型的组织与操作的类,是实现字符串存储和操作的类。
(2)根据数据类型的构造方法不同,可以所有的数据类型分为两个类型:
。
所谓简单类型是指,所谓复合类型型是指,既将组织在一起。
数组属于,它由组成。
从严格意义上讲,在Java语言中,数组是的类的对象,因些它又属于引用类型。
由的个数可以将数组分为、和。
(3)所谓一维数组是指。
在Java语言中,使用数组类型需要。
数组类型属于,也就是说,定义的数组类型的变量是,因此系统仅为这个变量分配一个所需存储空间,此时所引用的类可能根本不存在,还需通过创建过程给予构建,由此导出,在定义数组变量时,不需要(Java语法也不允许)。
(4)Java语言定义数组型变量的语法格式:
;
或者,
;
(5)数组型变量属于类型,其内部存储的是,而数组本身需要利用创建。
一个数组可以包含多个元素,被称为数组长度,数组也可以没有任何元素,此时称为。
正因为如此,在创建数组时需要给出。
利用创建数组的语法格式:
;
也可将数组的定义与创建合并到一起。
一旦创建数组,系统就会为其,并将数组的引用信息存放到相应数组型变量中。
对数组元素的任何操作都需要通过实现。
数组一旦被创建就其长度。
(6)在创建数组的同时,称为数组的初始化。
(7)在Java语言中,数组的下标从开始,到结束。
访问数组元素的格式为:
;
在时,会严格检查每个“下标表达式”的,一旦发生越界,会抛出。
(8)JDK5.0中专门增加了一个专门用于操作数据集合的循环控制结构语句foreach,书写格式为:
;
;
(9)在Java语言中,数组型变量可以实现两种形式的复制操作。
第一种称为;第二种称为。
第二种形式的复制操作是通过类的静态方法实现的,此方法的定义格式如下:
在
在时,会严格检查每个“下标表达式”的,一旦发生越界,会抛出。
(10)在Java语言中,一维数组的元素可以属于类型,包括和;也就是说,一维数组的元素又可以是一个一维数组类型,这就支持了,乃至的概念。
Java语言中二维数组的定义格式为:
;
或者,
;
或者,
;
创建二维数组的格式为:
;
在Java语言中二维数组中各行的列数是可以,也可以。
(11)Java语言提供了两种字符串类型,和。
字符串直接常量是用括起起来的字符序列。
除了可以直接书写字符串直接常量外,还可以把一个字符串存储在一个String类的对象中。
String类字义在包中,还提供了很多字符串操作的成员方法。
定义String类有对象的格式如下:
;
创建或初始化String对象的方法如下:
;
或者,
;
(12)String类的主要成员方法列于下表:
方法
描述
(13)Array是位于包中的标准类,其中包含了多个静态成员方法,通过它们可以完成数组的各种操作。
Array的常用静态成员方法列于下表:
方法
功能描述
2、名词:
(1)简单类型:
(2)复合类型型:
(3)数组:
(4)一维数组:
(5)数组的初始化:
(6)数组长度:
(7)空数组:
(8)字符串:
二、边学边练
第1部分:
数组
〖任务1〗:
完成教材【例3-1】的程序,分析运行结果,阅读教材相关内容。
〖任务2〗:
完成教材【例3-2】的程序,分析运行结果,阅读教材相关内容。
〖任务3〗:
完成教材【例3-3】的程序,分析运行结果,阅读教材相关内容。
第2部分:
字符串
〖任务4〗:
完成教材【例3-4】的程序,分析运行结果,阅读教材相关内容。
第3部分:
Array
〖任务5〗:
完成教材【例3-5】的程序,分析运行结果,阅读教材相关内容。
三、精讲精记
一、数组
1、数组的概念
数组是一个最常用的复合数据结构,一个数组中可以存放多个同类型的数据。
数组分为一维数组,二维数组和多维数组。
Java语言中的数组是引用类型,定义一个数组变量,实际上是定义一个数组的引用。
Java语言中的二维数组的各行的元素数可以不同。
2、一维数组
(1)定义数组变量:
数组元素类型[]变量;
或者,
数组元素类型变量[];
(2)数组的创建:
new数组元素类型[元素个数];
(3)数组的初始化。
数组元素类型[]变量={元素值列表};
3、二维数组
(1)定义数组变量:
数组元素类型[][]变量;
或者,
数组元素类型变量[][];
(2)数组的创建:
new数组元素类型[数组的行数][数组的列数];
或者,
new数组元素类型[数组的行数][];
(3)数组的初始化。
数组元素类型[]变量=
{{第0行元素值列表},{第1行元素值列表},……,{第n-1行元素值列表}};
3、多维数组
基本思路:
数组的每个元素都可以是一个数组。
二、字符串
1、字符串的概念
字符串一个字符串序列,字符串中的字符个数称为字符串的长度。
Java中的字符串是类(java.lang包中),分为两种字符串:
不可变字符串String,线程安全可变字符串StringBuffer,线程不安全可变字符串StringBuilder。
字符串变量是字符串的引用。
2、String对象
(1)字符串常量:
用双引号引起来的字符串序列。
如:
"good"
(2)字符串变量的定义:
用双引号引起来的字符串序列。
如:
"good"
String变量;
(3)创字符串对象:
newString(字符串常量);
(4)给字符串变量赋值:
变量=newString(字符串常量);
或者,
变量=字符串常量;
3、String类提供的方法
方法
描述
intlengh()
返回字串常长度
charcharAt(intindex)
返回字符串中指定位置的字符
booleanequals(ObjectothObject)
判断当前字符串与otherObject是否相等。
intcopareTo(StringothString)
当前字符串与otherString进行比较,如大于则返回1,小于则返回-1,相等返回0。
intindex(charch)
返回字符ch在字符串中的位置
intindexOf(Stringstr)
返回字符串str在字符串中的位置
Stringsubstring(intbegin)
Stringsubstring(intbegin,intend)
返回从begin开始到字符串结束的子字符串
返回从begin开始到end结束的子字符串
Stringconcat(Stringstr)
返回当前字符串与字符串str连接的字符串
Stringreplace(charoldChar,charnewChar)
将当前字符串中的oldChar替换为newChar返回
StringtoLowerCase()
将当前字符串中字母转化为小写字符后返回
StringtoUpperCase()
将当前字符串中字母转化为大写字符后返回
StringvalueOf(Objectobj)
StringvalueOf(booleanb)
StringvalueOf(charc)
StringvalueOf(inti)
StringvalueOf(longl)
StringvalueOf(floatf)
StringvalueOf(doubled)
把各种类型的值转换为字符串
三、Arrays类
Arrays类是JavaAPI中提供的标准类,在java.util包中。
Arrays类中提供了多个静态方法,可直接实现数组的排序、搜索等数组的操作。
1、数组的排序
voidArrays.sort(elementType[]a);
2、数组的搜索(二分法)
intArrays.binarySearch(elementType[]a,elementTypev)
3、数组的复制
elementType[]Arrays.copyOf(elementType[]original,intnewLength)
4、数组的填充
voidArrays.fill(elementType[]original,elementTypev)
5、数组的比较
booleanArrays.equals(elementType[]a,elementType[]b)
四、完善调试
1、任务一:
设计一个程序,从键盘上输入n个整数,计算它们的最大值、最小值及平均值。
再计算大于平均值的数的个数和小于平均值的数的个数。
import;
publicclassMyNumber{
main(){
Scannerin=;
System.out.print("请输入整数的个数:
");
intn=;
int[]data=;//声明、创建存放n个整数的数组
intmax=0,min=0;
intsum=0,aver=0;
intlarge=0,smaller=0;
for(;;){
System.out.print("\n请输入第"++"个整数:
");
;
if(i==0){
;
;
}else{
if(data[i]>max){
;
}
if(data[i] ; } } sum+=; } aver=; for(;;){ if(data[i]>aver){ ; } if(data[i] ; } } System.out.print("\n输入的"+n+"个整数: "); for(inti=0;i if(i! =n-1){ System.out.print(+"、"); }else{ System.out.println(); } } System.out.printf("最大数为: %d,最小数为: %d,平均数为: %d\n",max,min,aver); System.out.printf("大于平均数的数的个数为: %d,小于平均数的数的个数为: %d\n",large,smaller); } } 2、任务二: 设计一个Java程序,从键盘上输入一句英语。 统计其中单词的个数和每个字母出现的频率。 import; publicclassSentence{ publicstaticvoid(String[]args){ =newScanner(System.in); System.out.print("请输入一句英语: "); Stringsentence=; intwordNumber=0; intletterNumber=0; int[]letterFrequency=newint[26]; String[]words=sentence.split("[^a-zA-Z]"); wordNumber=words.length; for(inti=0;i<;i++){ for(intj=0;j<;j++){ letterNumber++; charletter=words[i].; letter=Character.toLowerCase(letter); intindex=(int)letter-97; letterFrequency[]++; } } System.out.println("各字母出现的频率: "); for(inti=0;;i++){ System.out.printf("%c: %f\n",,); } } } 3、任务三: 设计一个Java程序,从键盘上输入一个n维方阵,输出这个方阵。 对这个方阵进行转置操作,输出转置操作后的结果。 importjava.util.Scanner; publicclassMatrix{ publicstaticvoidmain(String[]args){ Scannerin=newScanner(System.in); System.out.print("请输入方阵的维数: "); intn=in.nextInt(); int[][]matrix=newint[n][n]; for(inti=0;i for(intj=0;j System.out.print("\n请输入第"+(i+1)+"行第"+(j+1)+"列: "); matrix[i][j]=in.nextInt(); } } System.out.println("\n输入的原方阵: "); for(inti=0;i for(intj=0;j System.out.printf("%3d",matrix[i][j]); } System.out.println(); } for(inti=0;i for(intj=0;j inttemp=matrix[i][j]; matrix[i][j]=matrix[j][i]; matrix[j][i]=temp; } } System.out.println("\n转置操作后的方阵: "); for(inti=0;i for(intj=0;j System.out.printf("%3d",matrix[i][j]); } System.out.println(); } } } 五、项目实战 写一个学生成绩管理的简易程序,要求如下: 1、程序提供如下功能菜单: 2、如果选择菜单“1”,则先提示输入学生人数,再逐一输入每个学生的姓名、语文成绩、数学成绩、英语成绩。 如: 成绩输入完毕后,呈现功能菜单。 3、如果选择菜单“2”,则逐一输出每个学生的姓名、语文成绩、数学成绩、英语成绩、总成绩、平均成绩。 如: 4、如果选择菜单“0”,程序输出: 结束程序运行。 5、建议用一个一维字符串数组存放全体学生的姓名,用一个二维float数组存放各同学的语文成绩、数学成绩、英语成绩,总成绩和平均成绩计算获取。 程序的源代码如下: 六、课后练习 一、选择题 1、String、StingBuffer和StringBuilder都是______类,都不能被继承。 A、static B、abstract、C、final D、private 2、下列程序的功能是统计字符串中"array"的个数,在程序的空白处应填入的正确选项是 public class FindKeyWords{ public static void main(sring[] args){ sting text= "An array is a data structur that stores a collection of" + "values of the same type . You access each individual value" + "through an integer index . For example,if a is an array" + "of inergers, then a[i] is the ith integer in the array."; int arrayCount =0; int index = -1; Sting arrarStr ="array"; index = text.indexof(arrayStr); while(index 0) { ++arrayCount; index += arrayStr.length(); index = text.indexof(arrayStr,index); } System.out.println(“the text contains” + arrayCount + “arrays”); } } A、< B、= C、<= D、>= 3、给出下列代码,则数组初始化中哪项是不正确的? Byte[] array1,array2[]; byte array3[][]; byte[][] array4; A、array2 = array1 B、array2=array3 C、array2=array4D、array3=array4 4、顺序执行下列程序语句后,则b的值是 Stringa="Hello"; Stringb=a.substring(0,2); A、HelloB、helloC、HelD、null 5、执行完以下代码int[]x=newint[10];后,以下哪项说明是正确的 A、x[9]为0B、x[9]未定义C、x[10]为0D、x[0]为空 6、对数组的定义及初始化不正确的方法是: A、intarray[]; B、intarray[8]; C、int[]array=newint[8]; D、intarray[]=newint[8]; 7、关于length()这个方法的表述正确的是哪个? A、数组有length()这个方法,String也有length()这个方法。 B、数组有length()有这个方法,String没有length()这个方法。 C、数组没有length()这个方法,String有length()这个方法。 D、数组没有length()这个方法,String也没有length()这个方法。 8、运行下面程序段的结果是()。 publicclassMyMain{ publicstaticvoidmain(Stringargs){ System.out.println("HelloJava"); } } A、正常输出HelloJavaB、编译时出错 C、运行时出错D、以上答案都不对 9、编译并运行下述程序段的结果是()。 publicclassTest{ publicstaticvoidmain(Stringargv[]){ int[]count=newint[4]; System.out.println(count[4]); } } A、编译时错误B、运行时错误C、输出0D、输出null 10、下面哪个语句(初始化数组)是不正确的()。 A、 int x[] = {1,2,3}; B、 int x[3] = {1,2,3}; C、 int[] x = {1,2,3}; D、 int x[] = new int[]{1,2,3}; 11、运行下面程序段的结果是()。 publicclassTest{ publicstaticvoidmain(Stringargv[]){ int[][]data={{1,2,3,4,5},{11,22,33,44,55},{111,222,333,444,555}}; for(inti=0;i if(i%2==0){ System.out.println(data[i][4]+""); } } } } A、5555B、555D、55 二、填空题 1、设有数组定义: inta[][]={11,22,33,44,55,66,77,88,99};则执行下列几个语句后的输出结果是【1】。 for(inti=0i if(a[i]%3==0)System.out.println(a[i]+""); 2、下面程序的运行结果是【2】。 importjava.io.* publicclassABC{ publicstaticvoidmain(String[]args){ inta[][]={11,22,33,44,55,66,77,88,99}; for(inti=0;i<=a.length/2;i++) System.out.print(a[i]+a[a.length-i-1]+""); System.out.println(); } } 3、请完成下列程序,实现随机抽取数据元素的功能。 publicclassChouti{ publicstaticvoidmain(String[]args){ String[]timu={"天文","地理","历史","文学","红楼","三国"}; intindex=(int)(timu.leng*Math.random()); System.out.print("你抽的题目领域是"+【3】[index]+"。 "); } } 4、有字符串s1,则其长度为【4】。 5、有数组array,则其长度为【5】。 6、有如下代码: Strings1,s2; s1="abcd"; s2="abcd"; 则s1.equals(s2)的值为【6】。 7、有如下代码: Strings1,s2; s1="abcd"; s2=s1; 则s1.equals(s2)的值为【7】。 8、有如下代码:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计语言 第六 单元