欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    java第四章字符串与数组.ppt

    • 资源ID:6510088       资源大小:347.50KB        全文页数:61页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java第四章字符串与数组.ppt

    第4章 字符串与 数 组,4.1 字符串 4.2 数组,4.1 字符串,4.1.1 String 类4.1.2 String Buffer类4.1.3 修改字符串4.1.4 字符串的比较4.1.5 字符串的转化4.1.6 字符串“+”操作,4.1.1 String 类,String类是字符串常量类,该类对象在建立后不能修改。Java编译器保证每个字符串常量都是String类对象。用双引号括住的一串字符即为字符串常量,比如“Welcome to Java!,在通过编译器编译后成为String对象。因而,实例化一个String类对象既可以通过字符串常量,也可以通过系统提供的构造方法。,一 String类的基本方法 前面谈到过String类的一些基本属性,本节我们讨论String类的一些常用方法。1String类初始化 String类可用字符串常量对其初始化,也可调用其构造方法来进行。例如:String s=Welcome to Java Wrold!;String类主要构造方法见表4.1。,表4.1 String类的构造方法,例如:char char1=a,b,c,d;String s1=new String();String s2=new String(char1);String s3=new String(char1,1,2);/生成字符串“bc”String s4=new String(char1,0,1,3);/生成字符串“bcd”,String使用示例,String s=new String()生成一个空串下面用不同方法生成字符串“abc”char chars1=a,b,c;char chars2=a,b,c,d,e;String s1=new String(chars1);String s2=new String(chars2,0,3);byte ascii1=97,98,99;byte ascii2=97,98,99,100,101;String s3=new String(ascii1,0);String s4=new String(ascii2,0,0,3);,2字符串类的String访问 字符串的访问即字符串的引用,它包括得到字符串的长度,得到指定位置的字符或子串,以及得到某个字符或子串在字符串中的索引位置等。String类的功能很强,几乎覆盖了所有的字符串运算操作。表4.2给出了一些常用的字符串运算方法。,表4.2 String类的常用方法列表,二 String类方法使用举例例如:String s=abCD;int i=s.length();/i=4String s1=s.toLowerCase();/s1=abcdString s2=s.toUpperCase();/s2=ABCDchar c=s.charAt(3);/c=DString s3=s.substirng(2);/s3=CDString s4=s.substirng(2,3);/s4=C,boolean b=s.regionMatches(1,bCE,0,2);/b=falseboolean b1=s.startWith(ab);/b1=trueboolean b2=s.endWith(de);/b2=falseint m=s.indexOf(C);/m=2int k=s.lastIndexOf(C);/k=2String s5=s.replace(b,B);/s5=aBCDdouble d=5.234;String s6=String.valueOf(d);/s6=5.234,4.1.2 String Buffer类,String类是字符串常量类,初始化后就不能进行修改,而String Buffer类是字符串缓冲区,不仅可以接受修改,还可以读入整个文件。在Java中,String Buffer类是一个可以修改的字符串对象,使用起来比String类更加灵活、方便。Java中并不支持运算符的重载,但“+”是个例外,例如,对语句:String s=Welcome+to+Java!;,编译器首先生成类StringBuffer的一个实例,然后连续调用方法append(),最后,再调用方法toString()把StringBuffer对象转换为String对象。这相当于执行语句:String s=new String Buffer(Welcome).append(to).append(Java!).toString();,一 String Buffer类的基本方法 与String类类似,String Buffer类方法很多,下面我们也从初始化与访问方法两个方面加以介绍。1String Buffer类的初始化 String Buffer类只能用初始化函数对其初始化,如果想按下面语句:String Buffer s=Welcome to Java!;对其初始化,则系统会给出出错信息。String Buffer的构造函数如表4.3所示。,表4.3 String Buffer类的构造函数,2String Buffer类的访问方法 String Buffer类的方法主要就是添加字符和插入字符,如表4.4所示。,表4.4 String Buffer类的主要方法,例如:string Buffer sb=new String Buffer(this is a test String Buffer);sb.setLength(14);/sb=this a testsb.set Char(0,T);/sb=This is a testsb.append(5.12);/append a double numbersb.append(true);/append a Boolean number,then sb=This is a test5.12truesb.insert(14,value=);/sb=This is a test value=5.12true,4.1.3 修改字符串,一 修改String类String表示不变字符串,因此不能直接对它的内容进行修改,而是通过生成String类对象的一个拷贝,同时完成对字符串的修改。,32位引用空间,String,abc,32位引用空间,String,abc,abcd,String类提供的方法:concat()replace()substring()toLowerCase()toUpperCase(),二 StringBuffer类的修改,StringBuffer类提供的方法:append()insert()setCharAt()如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的空间.,4.1.4 字符串的比较,String中提供的方法:equals()和equalsIgnoreCase()它们与运算符=实现的比较是不同的。运算符=比较两个对象是否引用同一个实例,而equals()和equalsIgnoreCase()则比较两个字符串中对应的每个字符值是否相同。,4.1.5 字符串的转化,中提供了方法toString()把对象转化为字符串。,4.1.6 字符串“+”操作,运算符+可用来实现字符串的连接:String s=“He is”+age+“years old.”;其他类型的数据与字符串进行“+”运算时,将自动转换成字符串。,4.2 数组,4.2.1 一 维 数 组4.2.2 二 维 数 组,4.2.1 一 维 数 组,一维数组是最简单的数组,在Java中,数组是作为数组类的一个实例来处理的,故可以用new运算符来建立一个数组。由于数组中每一个元素都作为一个单独的对象来考虑,因而必须逐一建立,所以定义的时候,我们必须显式或隐含地指明数组中对象的数目。下面我们分声明和引用两部分来进行介绍。,一、一维数组的声明和初始化 数组变量在使用之前要事先声明,其数组元素的类型可分为三类,第一类是Java的基本数据类型;第二类是Java类和接口类型(引用类型);第三类是数组类型。其一般定义格式如下:type array_Name;或 type array_Name;类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型,例如:int intArray;Date dateArray;int intArray;Date dateArray;,上面两种定义方式完全等价。对C/C+熟悉的读者应该对第一种定义方式并不陌生。例如:int Array1;Object Array2;上面所给的例子只是简单的变量声明,并没有给数组分配内存空间。我们在使用数组前还必须对其进行初始化(即为其分配内存空间)。给数组元素分配内存并为数组元素赋初值的过程称为数组初始化。初始化可分为动态初始化和静态初始化。,1静态初始化 当数组元素的初始化值直接由括在大括号“”之间的数据给出时,就称为静态初始化。该方法适用于数组的元素不多且初始元素有限时。静态初始化往往和声明结合在一起使用,其格式如下:array_type array_Name=element1,element2;,其中,array_type为数组元素的类型;array_Name为数组名;element1、element2为array_type类型的数组元素初值;方括号“”表示可选项。例如:int factorial=1,2,3,4,5,6,7,8;char ch=a,A,b,B,c,C;double f=12,45.12,88.123;int intArray=1,2,3,4;String stringArray=“abc”,“How”,“you”;,2动态初始化 与静态初始化不同,动态初始化先用new操作符为数组分配内存,然后才为每一个元素赋初值。其一般格式如下:array_Name=new array_type arraySize;其中,array_Name是已定义的数组名;array_type为数组元素的数据类型,必须与定义时给出的数据类型保持一致;arraySize为数组的长度,它可为整型变量或常量。例如:,.int series=new int4;for(int i=0;i4;i+)series i=i*3;.,动态初始化简单类型的数组:int intArray;intArray=new int5;,32位引用空间,intArray,32位,32位,32位,32位,32位,复合类型的数组String stringArray;stringArray=new String3;/*为数组中每个元素开辟引用空间(32位)*/stringArray0=new String(“How”);stringArray1=new String(“are”);stringArray2=new String(“you”);,32位引用空间,stringArray,32位引用空间,32位引用空间,32位引用空间,How,are,you,二 一维数组的引用数组元素的引用方式为:arrayNameindex arrayName为数组名,index为数组下标,数组的下标是一个int类型数,也可以使用与int类型进行自动类型转换的类型,如short、byte、char类型(使用时转换成int类型),但下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。,比如:.short i;byte j;long k;int array1 i,array2j;/no errorint array3k;/error int array4(int)k;/its ok.,在Java语言中,数组下标从0开始,到数组长度减1结束。任何数组都有公有变量length。我们除了可以在使用时显式指出数组长度之外,也可以使用length这一数组属性。它是只读变量,只可检测,不可赋值,因为数组一旦分配内存后,其长度就不再变化。为了安全考虑,数组的存取在程序运行时实时检查,企图使用小于零或大于数组长度的下标都会引起越界异常(ArrayIndexOutofBoundException)(异常处理我们将在后面的章节中给出)。,例如:.int array1=new int 10;array1-1=100;/error,out of bound.array1 10=200;/error,out of bound.,public class ArrayTestpublic static void main(String args)int i;int a=new int5;for(i=0;i=0;i-)System.out.println(a+i+=+ai);,一维数组使用举例,Fibonacci(斐波那契)数列F1=F2=1;Fn=Fn-1+Fn-2,public class Fibonaccipublic static void main(String args)int i;int f=new int10;f0=f1=1;for(i=2;i10;i+)fi=fi-1+fi-2;for(i=1;i=10;i+)System.out.println(F+i+=+fi-1);,冒泡排序法对相邻的两个元素进行比较,把数值较小的元素一次交换到前面,public class BubbleSortpublic static void main(String args)int i,j;int intArray=30,1,-9,70;int l=intArray.length;for(i=0;iintArrayj)int t=intArrayi;intArrayi=intArrayj;intArrayj=t;for(i=0;il;i+)System.out.println(intArrayi+);,4.2.2 二 维 数 组,我们在讨论一维数组的时候谈到,数组的元素类型可以为数组,即数组的嵌套,其实,多维数组可以看作是数组的数组。也就是说,多维数组中每个元素为一个低维数组,故多维数组的声明、初始化和引用与一维数组非常相似。由于多维数组中用得较多的还是二维数组,因而我们着重讨论二维数组的属性,其他高维数组可以以此类推。,一 二维数组的声明和初始化 与一维数组类似,二维数组声明的一般格式如下:array_type array_Name;或 array_type array_Name;其中,array_type为数组元素类型,可以是任意的数据类型;array_Name为数组名,可以是Java中合法的标识符。上面的定义并没有为数组元素分配内存空间,因而必须经过初始化后才能使用。,例如:int array1;/定义一个整型二维数组或 int array2;/同样定义一个二维整型数组 二维数组在实际的使用过程中也分为静态初始化和动态初始化两种。初始化的过程与一维数组相同,在此不多加理论说明,而只是以初始化实例来加以说明。,1静态初始化实例.int number=1,2,3,4,5,6;char ch=a,b,c,d,e,f;.上例是在建立数组的同时用大括号中的值给它赋初值,得到了两个二维整型数组和二维字符数组。,二维数组的初始化,静态初始化int intArray=1,2,2,3,3,4,5;,动态初始化,直接为每一维分配空间,格式如下:arrayName=new typearrayLength1arrayLength2;例如:int a=new int23;,2动态初始化实例.int array_int=new int33;/定义数组并为其分配存储空间long array_long=new long55;.,动态初始化,从最高维开始,分别为每一维分配空间:arrayName=new typearrayLength1;arrayName0=new typearrayLength20;arrayName1=new typearrayLength21;arrayNamearrayLength1-1=new typearrayLength2n;,动态初始化,必须注意:在Java语言中,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。与一维数组相同,对于复合类型的数组,必须为每个数组元素单独分配空间。,动态初始化,String s=new String2;s0=new String2;s1=new String2;s00=new String(“Good”);s01=new String(“Luck”);s10=new String(“to”);s11=new String(“You”);,内存分配过程,s,s0,s00,s01,s1,s10,s11,String s=new String2;,“Luck”,“to”,“You”,String s0=new String2;,String s1=new String2;,String s00=new String(“Good”);,String s01=new String(“Luck”);,String s10=new String(“to”);,String s11=new String(“You”);,“Good”,二 二维数组的引用 当我们对二维数组进行了初始化后,就可以在程序中引用数组的元素了。二维数组元素的引用是通过数组名和下标值来进行的,其一般格式如下:array_Name arrayIndex1 arrayIndex2,其中,array_Name为数组名;arrayIndex1为数组元素的高维下标;arrayIndex2为数组的低维下标。二维数组中,下标同样是一个int类型数,也可以使用与int类型进行自动类型转换的类型,如short、byte、char类型(使用时转换成int类型),但下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。,三 Java中二维数组长度问题,熟悉C/C+的读者知道,在C/C+使用二维数组的时候,要求每一维的长度必须一致,例如在C中有如下的定义:int array 3;其对应的二维表如表3.1所示。,表3.1 C/C+中二维数组存储格式,Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。例如,当在Java有如下的定义:int array 3=new int3;array0=new intn;array1=new intm;array2=new intk;时,其对应的二维表如表3.2所示。,表3.2 Java中二维数组存储格式,例:int a=new int2;a0=new int3;a1=new int5;,长度不同的二维数组定义举例,Amn Bnl=Cml其中,cij=aikbkj(i=1,2,m;k=1,2,n;j=1.2,l),二维数组使用举例-矩阵计算,int a=2,3,4,4,6,8;int b=1,5,2,8,5,9,10,-3,2,7,-5,-18;for(i=0;i2;i+)for(j=0;j4;j+)cij=0;for(k=0;k3;k+)cij+=aik*bkj;,二维数组使用举例-矩阵计算,

    注意事项

    本文(java第四章字符串与数组.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开