java数组和字符串课件

PPT
  • 阅读 30 次
  • 下载 0 次
  • 页数 50 页
  • 大小 164.594 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
java数组和字符串课件
可在后台配置第一页与第二页中间广告代码
java数组和字符串课件
可在后台配置第二页与第三页中间广告代码
java数组和字符串课件
可在后台配置第三页与第四页中间广告代码
java数组和字符串课件
java数组和字符串课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 50
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】java数组和字符串课件.ppt,共(50)页,164.594 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45169.html

以下为本文档部分文字说明:

第4章数组和字符串数组数组说明一个数组是一系列的匿名变量,数组中的元素可通过下标来访问。在Java中,数组是对象。类Object中定义的方法都可以用于数组。数组说明程序员可以说明任何类型的数组,数组元素可以是基本类型,也可以是类类型,当然还

可以是数组。例chars[];Pointpoints[];s的每个元素都是char类型的,points的每个元素都是类Point类型的。等价的数组说明char[]s;Point[]points;这两行说明与前面的说

明完全等价。创建数组和所有对象一样,程序中使用new关键字创建数组,方括号中的数字表示数组元素个数。例:s=newchar[20];points=newPoint[100];points[0]=newPoint();points[1]=newPoint();Java中没有静态的

数组定义,数组的内存都是通过new动态分配的。points(a)PointsLength:100…(b)pointsLength:100…X:Y:(c)Point类定义如下:classPoint{intx,y;Point(intx1,in

ty1){x=x1;y=y1;}Point(){this(0,0);}}图说明说明语句:Point[]points;执行完毕,系统为变量points分配一个引用空间。说明语句:points=newPoint[100];执行完毕,系统在内存中分配一个数组对象并

把数组引用赋给变量points,说明语句:points[1]=newPoint();执行完毕,数组的状态图4-1(b)变为图4-1(c)。数组说明与数组创建可以合并:chars[]=newchar[20];

Pointpoints[]=newPoint[100];数组变量的类型可以不同于所指向的数组类,但应该是它的父类。例如:Object[]points;points=newPoint[100];例如:Point[]points;points=newObject[100];正确错误数组边界

在Java中,数组下标从0开始。数组中的元素个数length是数组类中唯一的数据成员变量。使用new创建数组时系统自动给length赋值。数组一旦创建完毕,其大小就固定下来。程序运行时使用length进行数组边界检查。如果发生越界访问

,则抛出一个异常。示例intlist[]=newint[10];for(inti=0;i<list.length;i++){//进行相应处理的代码}循环的结束条件中使用list.length,而不是常数10。好

处:不会引起数组下标越界,使程序更健壮,修改更方便。数组初始化数组名加上下标可以表示数组元素。数组的下标范围为0到length-1。当创建一个数组时,每个元素都被初始化。Java允许用初值来创

建数组。示例Stringnames[]={″Georgianna″;″Jen″;″Simon″;″Tom″};静态初始化静态初始化可用于任何元素类型,初值块中每个位置的每个元素对应一个引用。names=newString[4];names[

0]="Georgianna";names[1]="Jen";names[2]="Simon";names[3]="Tom";多维数组Java可以建立数组的数组(的数组……),由此得到多维数组。一般来讲,n维数组是n-1维数组的数组。说明多维数组时使用类型及多对方

括号。多维数组可以从最高维起,分别为每一维分配内存。示例inttwoDim[][]=newint[4][];twoDim[0]=newint[5];twoDim[1]=newint[5];二维数组创建二维数组

的一般格式为:typearrayN[][]=newtype[arrleng1][];arrayN[0]=newtype[arrleng2];arrayN[1]=newtype[arrleng2];......arrayN[arrleng1-1]=newtype[arrleng2];非矩阵

数组在Java中还可以创建非矩阵数组。例4-4inttwoDim[][]=newint[4][];twoDim[0]=newint[2];twoDim[1]=newint[4];twoDim[2]=newint[6];twoDim[3]=newint[8];twoDim数组为4

行,每行的元素个数分别为2,4,6,8个,各不相同。数组形式如下:XXXXXXXXXXXXXXXXXXXX该数组各维的长度如下twoDim.length=4twoDim[0].length=2twoDim[1].length=4twoDim[2].leng

th=6twoDim[3].length=8二维矩阵数组说明二维矩阵数组的一般说明格式为typearrayName[][]=newtype[length1][length2];其中,arrayName是数组名,length1和length2分别为数组各维的大小,typ

e是数组元素的类型。例4-5intmatrix[][]=newint[4][5];将创建一个有4个数组的数组,每个数组中又有5个整数,即4行5列的整数矩阵。等价于:intmatrix[][]=newint[4][];for(intj=0;j<matri

x.length;j++)matrix[j]=newint[5];多维数组的初始化多维数组的初始化与一维数组类似,以二维数组静态初始化为例:inta[][]={{2,3},{1,5},{3,4}};它的形式如下:2

31534使用两个下标可以访问数组中的任一元素。正确的说明示例inta1[][]=newint[2][3];inta2[][]=newint[2][];inta3[][]=newint[4][6];不正确的说明示例interrarr

1[2][3];interrarr2[][]=newint[][4];interrarr3[][4]=newint[3][4];不允许静态说明数组。数组的维数说明顺序应从高维到低维。数组维数的指定只能出现在new运算符之后。数组拷贝数组

创建后就不能改变它的大小,但是可以使用相同的引用变量指向一个全新的数组。intelements[]=newint[6];elements=newint[10];Java在System类中提供了一个特殊的方法arraycopy(),它实现数组之间的拷贝。示例classArray

Test{publicstaticvoidmain(Stringargs[]){//初始数组intelements[]={1,2,3,4,5,6};//..//增大后的新数组inthold[]={10,9,8,7,6,5,4,3,2,

1};//把elements数组中的所有元素复制到//hold数组中,下标从0开始System.arraycopy(elements,0,hold,0,elements.length);}}数组hold的内容为:1,2,3,4,5,6,4,3,2,1。4.2字符串类型Java中提供了S

tring和StringBuffer类型,它们都是类。字符串是内存中连续排列的一个或多个字符。Java提供的标准包java.lang中封装了类String和StringBuffer,分别用于处理不变字符串和可变字符串。不变字符串是指字符串一旦创建,其内容就不能改变。字符串说明及

初始化Java程序中的字符串分常量和变量两种。系统为程序中出现的字符串常量自动创建一个String对象。如:System.out.println(″ThisisaString″);将创建″ThisisaString″对象,这个创建过程是隐含的。字符

串的说明字符串的说明很简单:Strings1;StringBuffersb1;创建一个空的字符串:Strings1=newString();由字符数组创建字符charchars[]={′a′,′b′,′c′};Strings2=newString(chars);可以直接用字符串常量来初始

化一个字符串:Strings3=″HelloWorld!″;字符串处理字符串创建以后,可以使用字符串类中的方法对它进行操作。String类String类的对象实例是不可改变的,一旦创建,就确定下来。String类中常用的方法有:length()返回字符串中的字符个数。charAt(int

index)返回字符串中index位置的字符。toLowerCase()将当前字符串中所有字符转换为小写形式。toUpperCase()将当前字符串中所有字符转换为大写形式。subString(intbeginIndex)截取当前字符串中从beginIndex开始到末尾的子串。re

place(charoldChar,charnewChar)将当前字符串中出现的所有oldChar转换为newChar。还有getChars(),indexOf(),getBytes()等许多方法。字符串操作示例publiccl

assStringTest{publicstaticvoidmain(Stringargs[]){Strings=″ThisisatestString!″;System.out.println(″beforechanged,s=″+s);Stringt=s.

toLowerCase();System.out.println(″afterchanged,s=″+s);System.out.println(″t=″+t);}}执行结果为:beforechanged,s=ThisisatestString!afterchan

ged,s=ThisisatestString!t=thisisateststring!StringBuffer类StringBuffer类处理可变字符串,当修改一个StringBuffer类的字符串时

,不用再创建一个新的字符串对象,而是直接操作原字符串。Java为StringBuffer类提供的方法不同于String类中的方法。系统为String类对象分配内存时,按照对象中所含字符的实际个数等量分配。而为Str

ingBuffer类对象分配内存时,除去字符所占空间外,再另加16个字符大小的缓冲区。对于StringBuffer类对象,使用length()方法可获得字符串的长度,另外,还有capacity()方法返回缓冲区的容量。一般地,StringBuffer的长度是指存储在其中的字符个

数,容量是指缓冲区所能容纳的最大字符数。几个特殊处理连接String类对象可以使用concat(Stringstr)方法将str连接在当前字符串的尾部。例Strings=″Thisisthe″;Stringt=s.concat(″String.″);t的内容为:″ThisistheStri

ng.″系统还提供了实现连接的简单操作,即重载运算符“+”。“+”除了能实现数值加法外,还可连接它的两个操作数。只要“+”的两个操作数中有一个是字符串,则另一个也自动变为字符串类型。StringBuffer类对象使用append()方法实现连接。例如:ag

e是int型量,值为36,Strings=″Heis″+age+″yearsold.″;Strings=newStringBuffer(″Heis″).append(age).append(″yearsold.″).toString

();完全等价比较String类中有多个比较方法:compareTo(),equals(),equalsIgnoreCase(),regionMatches()它们可用来实现字符串的比较。这几个方法判定要比较的两个实例内容是否符合条件。示例//程序

4--3classStringTest{publicstaticvoidmain(Stringargs[]){Stringstr=″Thisisthefirststring.″;booleanresult1=st

r.equals(″Thisisthefirststring.″);booleanresult2=str.equals(″thisisthefirststring.″);booleanresult3=str.equalsIgnoreCase(″thisisthefirststring.″

);System.out.println(″result1=″+result1);System.out.println(″result2=″+result2);System.out.println(″result3=″+result3);}}执行结果为:result1=truer

esult2=falseresult3=trueJava中可以使用关系运算符“==”判定两个字符串是否相等。与equals()方法不同的是,“==”判定两字符串对象是否是同一实例,即它们在内存中的存储空间是

否相同。程序4-4classStringTest2{publicstaticvoidmain(Stringargs[]){Strings1=″Thisisthesecondstring.″;Strings2=″Thisisthesecondstring.″;Strings3=newS

tring(″Thisisthesecondstring.″);Strings4=newString(s1);Strings5=s1;booleanresult121=s1.equals(s2);booleanresult122=s1==s2;boolean

result131=s1.equals(s3);booleanresult132=s1==s3;booleanresult141=s1.equals(s4);booleanresult142=s1==s4;booleanresult151=s1.equals(s5);booleanresult1

52=s1==s5;System.out.println(″s1equalss2=″+result121);System.out.println(″s1==s2=″+result122);System.o

ut.println(″s1equalss3=″+result131);System.out.println(″s1==s3=″+result132);System.out.println(″s1equalss4

=″+result141);System.out.println(″s1==s4=″+result142);System.out.println(″s1equalss5=″+result151);System.out.

println(″s1==s5=″+result152);}}执行结果为:s1equalss2=trues1==s2=trues1equalss3=trues1==s3=falses1equalss4=trues1==s4=falses1equalss5=trues1==

s5=true

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?