JAVA(数组向量字符串).ppt

上传人:wuy****n92 文档编号:70796039 上传时间:2023-01-28 格式:PPT 页数:86 大小:325.50KB
返回 下载 相关 举报
JAVA(数组向量字符串).ppt_第1页
第1页 / 共86页
JAVA(数组向量字符串).ppt_第2页
第2页 / 共86页
点击查看更多>>
资源描述

《JAVA(数组向量字符串).ppt》由会员分享,可在线阅读,更多相关《JAVA(数组向量字符串).ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1、数组、数组2 2、向量、向量3 3、字符处理、字符处理主要内容主要内容1、数组、数组一维数组一维数组 (1)(1)一维数组的定义一维数组的定义一维数组的定义方式为:一维数组的定义方式为:type type arrayNamearrayName ;其中类型其中类型typetype可以为可以为JavaJava中任意的数据类型,中任意的数据类型,包括简单类型和复合类型。包括简单类型和复合类型。数组名数组名arrayNamearrayName为一个合法的标识符,为一个合法的标识符,指明该变量是一个数组类型变量。指明该变量是一个数组类型变量。例如:例如:intint intArrayintArray

2、 ;声明了一个一维的整型数组变量声明了一个一维的整型数组变量intArray。与与C C、C+C+不同,不同,JavaJava在数组的定义中在数组的定义中并不为数组元素分配内存,因此并不为数组元素分配内存,因此 中不中不用指出数组中元素的个数,即数组长度,用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问而且对于如上定义的一个数组是不能访问它的任何元素的。必须经过初始化后,才它的任何元素的。必须经过初始化后,才能使用数组的元素。能使用数组的元素。除了这种定义数组的方式之外,除了这种定义数组的方式之外,javajava语语言还提供了其它的定义形式,如下所示:言还提供了其它的

3、定义形式,如下所示:type type arrayName arrayName;对于以上举出的例子,我们也可以这样对于以上举出的例子,我们也可以这样定义:定义:intint intArray intArray ;int int intArray;intArray;(2)(2)一维数组的初始化一维数组的初始化 一维数组变量定义之后,必须经过初一维数组变量定义之后,必须经过初始化才可以引用。数组的初始化分为静态始化才可以引用。数组的初始化分为静态初始化和动态初始化两种:初始化和动态初始化两种:静态初始化静态初始化:在定义数组的同时对数:在定义数组的同时对数组元素进行初始化,例如:组元素进行初始化,

4、例如:int intArray=1,2,3,4;int intArray=1,2,3,4;/定义了一个含有定义了一个含有4 4个元素的个元素的intint型数组。型数组。动态初始化动态初始化:使用运算符:使用运算符newnew为数组分配为数组分配空间,空间,对于简单类型的数组,其格式如下对于简单类型的数组,其格式如下 type arrayName=new typearraySize;或:或:type arrayName=new typearraySize;如:如:int x=new int100;double y=new double200;例如:例如:int IntArrar;/定义一个定义

5、一个int类型的数组变量,给变量类型的数组变量,给变量IntArrar分配分配 1个存储空间,初始化为个存储空间,初始化为nullIntArrar=new int3;/申请申请3个个int类型的存储空间,并将首地址赋给变量类型的存储空间,并将首地址赋给变量IntArrarIntArrar0=10;IntArrar1=20;IntArrar2=30;给数组元素赋值给数组元素赋值简单类型数组分配内存示意图简单类型数组分配内存示意图IntArrar0 xb1ca IntArrar0 IntArrar1 IntArrar20 xb1ca 102030int IntArrar;IntArrarnullI

6、ntArrar=new int3;对于复合类型(类、接口、数组)的数组,对于复合类型(类、接口、数组)的数组,需要经过两步空间分配需要经过两步空间分配。首先首先:type arrayName=new typearraySize;然后然后:arrayName0=new type(paramList);arrayName1=new type(paramList);arrayNamearraySize-1=new type(paramList);例如:例如:String stringArrar;/定义一个定义一个String类型的数组变量类型的数组变量stringArray=new String3;

7、/给数组变量给数组变量StringArray分配分配 3个连续的存储空间,个连续的存储空间,初始化每个引用值为初始化每个引用值为nullstringArray0=new String(“how”);stringArray1=new String(“are”);stringArray2=new String(“you”);初始化各数组元素初始化各数组元素复合类型数组分配内存示意图复合类型数组分配内存示意图stringArraroxa2b6howStringArrar0StringArrar1StringArrar2oxa2b60 xb1caare0 xd3cayou0 xa5c70 xb1ca0

8、 xd3ca0 xa5c7(3)(3)一维数组的引用一维数组的引用 当定义了一个数组,并用运算符当定义了一个数组,并用运算符newnew为它分为它分配了内存空间后,就可以引用数组中的每一个配了内存空间后,就可以引用数组中的每一个元素了。元素了。元素的引用方式为:元素的引用方式为:arrayNameindexarrayNameindex index index为数组下标,可以是整型常数或表达为数组下标,可以是整型常数或表达式,如:式,如:arrayName1,arrayNamei,arrayName1,arrayNamei,arrayName6*iarrayName6*i等。下标从等。下标从0

9、0开始,一直到数组开始,一直到数组长度减长度减1 1。另外,与另外,与C C、C+C+中不同,中不同,JavaJava对数组对数组元素要进行越界检查以保证安全性。同元素要进行越界检查以保证安全性。同时,对于每个数组,都有一个属性时,对于每个数组,都有一个属性lengthlength指明它的长度,例如:指明它的长度,例如:intArray.length intArray.length指明数组指明数组intArrayintArray的长度。的长度。数组举例数组举例 public class ArrayTest public static void main(String args )int i;i

10、nt a =new int5;for(i=0;i=0;i-)System.out.println(a+i+=+ai);该程序对数该程序对数组中的每个组中的每个元素赋值,元素赋值,然后按逆序然后按逆序输出。输出。运行结果为:运行结果为:a4=4a4=4a3=3 a3=3 a2=2 a2=2 a1=1a1=1a0=0a0=0(4)(4)课堂练习课堂练习a a、FibonacciFibonacci数列数列 F F1 1=F=F2 2=1;=1;F Fn n=F=Fn-1n-1+F+Fn-2n-2(n=3)(n=3)b b、冒泡排序法、冒泡排序法对数组中的元素进行比较,每次把最小的元对数组中的元素进行

11、比较,每次把最小的元素交换到最前面,最后使得整个数组按从小素交换到最前面,最后使得整个数组按从小到大顺序排列到大顺序排列。1、数组、数组多维数组多维数组 在任何语言中,多维数组都被看在任何语言中,多维数组都被看作数组的数组。比如二维数组是一个作数组的数组。比如二维数组是一个特殊的一维数组,其每一个元素又是特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组一个一维数组。我们主要以二维数组为例来说明,高维数组与此类似为例来说明,高维数组与此类似。(1)(1)二维数组的定义方式二维数组的定义方式 type arrayName type arrayName ;例如:例如:int intA

12、rray int intArray ;也可以采用另一种定义方式:也可以采用另一种定义方式:int intArray int intArray;二维数组与一维数组一样,这时对数组元二维数组与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符素也没有分配内存空间,同样要使用运算符newnew来分配内存,然后才可以访问每个元素。来分配内存,然后才可以访问每个元素。(2)(2)二维数组的初始化二维数组的初始化 二维数组的初始化也分为二维数组的初始化也分为静态和动态静态和动态两种。两种。静态初始化静态初始化:在定义数组的同时为数组分配空间:在定义数组的同时为数组分配空间int intArr

13、ay =1,2,2,3,3,4;int intArray =1,2,2,3,3,4;不必指出数组每一维的大小,系统会根据初始化不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的时给出的初始值的个数自动算出数组每一维的大小。大小。简单二维数组内存分配示意图float x;xnullx=new float3;x0 xab12nullnullnullx0=new int2;x1=new int3;x2=new int4;x0 xab12x0 x1x2x0 x1x2动态初始化动态初始化:对高维数组来说,分配内存空间有:对高维数组来说,分配内存空间有下面两种方法:下面两种

14、方法:1.1.直接为每一维分配空间,直接为每一维分配空间,如:如:type arrayName =new typearraylength1arraylength2;例如:例如:int a =new int23;2.2.从最高维开始(而且必须从最高维开从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:始),分别为每一维分配空间,如:String s =new String2;s0=new String2;s1=new String2;s00=new String(“Good”);s01=new String(“Luck”);s10=new String(“to”);s11=new

15、String(“you”);请画出二维数组内存分配示意图请画出二维数组内存分配示意图(3)3)二维数组的引用二维数组的引用 对二维数组中每个元素,引用方式为:对二维数组中每个元素,引用方式为:arrayNameindex1index2 其中其中index1index1和和index2index2为数组下标,为整型为数组下标,为整型常数或表达式,都是从常数或表达式,都是从0 0开始的。开始的。(4)(4)二维数组举例二维数组举例 两个矩阵相乘,参照参考书在课余时间上两个矩阵相乘,参照参考书在课余时间上机练习。机练习。例题class ErweiShuzu public static void ma

16、in(String arg)int a=new int3;int i,j;a0=new int2;a1=new int3;a2=new int4;for(i=0;ia.length;i+)for(j=0;jai.length;j+)aij=i+j;System.out.print(aij+”);System.out.println();double x=new double3;x0=new double2;x1=new double3;x0=new double5;x00=5;x11=9;x23=7;xX0X1X2597总共有总共有14个个变量,其中变量,其中x、x0、x1、x2是是引用引用变

17、量变量,其余,其余是是简单变量简单变量。x00 x01String x=new String3;x0=new String2;x1=new String3;x0=new String5;x01=new String(“abcd”);总共有总共有1414个变个变量,都是引用量,都是引用变量。变量。x00 x00到到x24x24这这1010个引用变量可个引用变量可以存放字符串以存放字符串的地址。的地址。xX0X1X2x00 x01abcd2、向量、向量 向量向量(Vector)Vector)是是java.utiljava.util类包提供的一个类包提供的一个工具类。它对应于类似数组的顺序存储的数据

18、工具类。它对应于类似数组的顺序存储的数据结构,但是具有比数组更强大的功能。结构,但是具有比数组更强大的功能。它是允它是允许许不同类型不同类型元素共存的元素共存的变长变长数组。每个数组。每个VectorVector类的对象可以表达一个完整的数据序列。类的对象可以表达一个完整的数据序列。VectorVector类的对象不但可以保存顺序的一列类的对象不但可以保存顺序的一列数据,而且还提供了许多有用的方法来操作和数据,而且还提供了许多有用的方法来操作和处理这些数据。处理这些数据。另外,另外,VectorVector类对象所表达的序列中元素类对象所表达的序列中元素的个数是可变的,即的个数是可变的,即Ve

19、ctorVector实现了变长数组。实现了变长数组。2、向量、向量 JavaJava中的数组只能保存固定数目的元中的数组只能保存固定数目的元素,且必须把所有需要的内存单元一次素,且必须把所有需要的内存单元一次性的申请出来,而不能先创建数组再追性的申请出来,而不能先创建数组再追加数组元素数量,为了解决这个问题加数组元素数量,为了解决这个问题JavaJava中引入了向量类中引入了向量类VectorVector。VectorVector也也是一组对象的集合是一组对象的集合,但相对于数组,但相对于数组,VectorVector可以追加对象元素数量,可以方可以追加对象元素数量,可以方便的修改和维护序列中

20、的对象便的修改和维护序列中的对象。向量比较适合在如下情况下使用:向量比较适合在如下情况下使用:1.1.需要处理的对象数目不定,序列中的元素都是需要处理的对象数目不定,序列中的元素都是对象或可以表示为对象对象或可以表示为对象 2.2.需要将不同类的对象组合成一个数据序列需要将不同类的对象组合成一个数据序列 3.3.需要做频繁的对象序列中元素的插入和删除需要做频繁的对象序列中元素的插入和删除 4.4.经常需要定位序列中的对象和其他查找操作经常需要定位序列中的对象和其他查找操作 5.5.在不同的类之间传递大量的数据在不同的类之间传递大量的数据 VectorVector类的方法相对于数组要多一些,但是

21、使类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,用这个类也有一定的局限性,例如其中的对象不能例如其中的对象不能是简单数据类型等。是简单数据类型等。(1)(1)创建向量类的对象创建向量类的对象 Vector类有三个构造方法:类有三个构造方法:lVector():构造一个空的向量。构造一个空的向量。lVector(int capacity):以指定的存储容量构以指定的存储容量构造一个空的向量。造一个空的向量。lVector(int capacity,int capacityIncrement):以指定的存储容量和容量增量构造一个空的以指定的存储容量和容量增量构造一个空的VectorV

22、ector。2、向量、向量例如:例如:Vector MyVector=new Vector(100,50);这个语句创建的这个语句创建的MyVectorMyVector向量序列初始有向量序列初始有100100个元素的空间,以后一旦使用殆尽则以个元素的空间,以后一旦使用殆尽则以5050为为单位递增,使序列中元素的个数变化成单位递增,使序列中元素的个数变化成150150,200200,。在创建。在创建VectorVector序列时,不需要指明序序列时,不需要指明序列中元素的类型,可以在使用时确定。列中元素的类型,可以在使用时确定。(2)(2)向向量序列中添加元素:向向量序列中添加元素:有两种添加元

23、素的方法:有两种添加元素的方法:addElement(Object obj)addElement(Object obj)将新元素添加到序列尾部。将新元素添加到序列尾部。insertElementAt(Object obj,int index)insertElementAt(Object obj,int index)将新元素插入到指定位置。将新元素插入到指定位置。2、向量、向量2、向量、向量下面是使用这两种方法的例子:下面是使用这两种方法的例子:Vector MyVector=new Vector();for(int i=1;i=10;i+)MyVector.addElement(new Int

24、eger(i);MyVector.insertElementAt(middle,5);import java.util.*;class aapublic static void main(String arg)Vector MyVector=new Vector();for(int i=1;i=10;i+)MyVector.addElement(new Integer(i);MyVector.insertElementAt(middle,5);for(int i=0;i=10;i+)System.out.println(MyVector.elementAt(i);/main/class例题例题

25、运行结果:12345middle6789102、向量、向量(3)(3)修改或删除向量序列中的元素修改或删除向量序列中的元素使用以下方法修改或删除向量序列中的元素使用以下方法修改或删除向量序列中的元素:1.setElementAt(Object obj,int index)将向量序列将向量序列indexindex位置处的对象元素设置成为位置处的对象元素设置成为objobj,如果这个位置原来有元素如果这个位置原来有元素,则被覆盖则被覆盖。2.removeElement(Object obj)删除向量序列中第一个与指定的删除向量序列中第一个与指定的objobj对象相同的元素,对象相同的元素,同时将后

26、面的元素前提,补上空位。这个方法返回的是同时将后面的元素前提,补上空位。这个方法返回的是布尔值。布尔值。3.removeElementAt(int index)删除删除indexindex指定位置处的元素,同时将后面的元素前指定位置处的元素,同时将后面的元素前提提。2、向量、向量4.4.removeAllElements()removeAllElements()清除向量序列中的所有元素。清除向量序列中的所有元素。下例中先创建一个下例中先创建一个VectorVector,再删除掉其中再删除掉其中的所有字符串对象的所有字符串对象“to”to”。Vector MyVector=new Vector(

27、100);for(int i=0;i10;i+)MyVector.addElement(“welcome”);MyVector.addElement(“to”);MyVector.addElement(“beijing”);while(MyVector.removeElement(“to”);2、向量、向量(4)(4)查找向量序列中的元素查找向量序列中的元素 常用于查找向量序列中某元素的方法如下:常用于查找向量序列中某元素的方法如下:1.Object elementAt(int index)返回指定位置处的元素。返回指定位置处的元素。一个要注意的问题:由于返回的是一个要注意的问题:由于返回的是

28、ObjectObject类型的对象,在使用之前通常需要进行强制类类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成型转换,将返回的对象引用转换成ObjectObject类的类的某个具体子类的对象。例如某个具体子类的对象。例如:String str=(String)MyVector.elementAt(0);2.boolean contains(Object obj)检查向量序列中是否包含指定的对象元素检查向量序列中是否包含指定的对象元素objobj。2、向量、向量 3.int indexOf(Object obj,int start_index)从指定的从指定的start_

29、indexstart_index位置位置开始向后搜索开始向后搜索,返回所,返回所找到的找到的第一个第一个与指定对象与指定对象objobj相同的元素的相同的元素的下标位置下标位置。若指定的对象不存在,则返回若指定的对象不存在,则返回1 1。4.int lastIndexOf(Object obj,int start_index)从指定的从指定的start_indexstart_index位置位置开始向前搜索开始向前搜索,返回所,返回所找到的找到的第一个第一个与指定对象与指定对象objobj相同的元素的相同的元素的下标位置下标位置。若指定的对象不存在,则返回若指定的对象不存在,则返回1 1。例如:

30、。例如:int i=0;While(i=MyVector.indexOf(“welcome”,i)!=-1)System.out.println(i);i+;2、向量、向量(5)(5)VectorVector中的其他方法中的其他方法capacity()capacity():返回返回VectorVector的容量的容量 clone()clone():建立建立VectorVector的备份的备份copyInto(Object)copyInto(Object):把把VectorVector中的元素拷贝到一中的元素拷贝到一个数组中个数组中firstElement()firstElement():返回第

31、一个元素返回第一个元素lastElement()lastElement():返回最后一个元素返回最后一个元素isEmpty()isEmpty():判断是否为空判断是否为空setSize(int size)setSize(int size):设置设置VectorVector的大小的大小size()size():返回返回VectorVector中元素的数量中元素的数量trimToSize()trimToSize():将将VectorVector的容量下调至最小值的容量下调至最小值 2、向量、向量 使用使用VectorVector时,时,一个需要特别注意的一个需要特别注意的问题就是要先创建后使用。问

32、题就是要先创建后使用。如果不先使如果不先使用用newnew运算符利用构造函数创建运算符利用构造函数创建VectorVector类的对象,而直接使用类的对象,而直接使用VectorVector的方法,的方法,如:如:addElement()addElement()等方法,则可能造成等方法,则可能造成堆栈溢出或使用堆栈溢出或使用nullnull指针等异常,妨碍指针等异常,妨碍程序的正常运行。程序的正常运行。例题:用向量实现,创建例题:用向量实现,创建3个学生对象(学个学生对象(学号、姓名、年龄)和号、姓名、年龄)和4个教师对象(教工号、个教师对象(教工号、姓名、系别),并且输出。姓名、系别),并且

33、输出。import java.util.*;class StuString xh;String xm;int nl;public Stu(String xh1,String xm1,int nl1)xh=xh1;xm=xm1;nl=nl1;void disp()System.out.println(学生:+xh+xm+nl);class TechString zh;String xm;String xb;public Tech(String zh1,String xm1,String xb1)zh=zh1;xm=xm1;xb=xb1;void disp()System.out.println(

34、教师:+zh+xm+xb);public class StuTerpublic static void main(String s)Vector st=new Vector();st.addElement(new Stu(101,李明,18);st.addElement(new Stu(102,王大力,20);st.addElement(new Stu(103,刘萍,19);st.addElement(new Tech(10100,林小利,计算机);st.addElement(new Tech(10101,熊平,计算机);st.addElement(new Tech(10102,戴红兵,电力)

35、;st.addElement(new Tech(10103,曲小军,电力);for(int i=0;ist.size();i+)if(st.elementAt(i)instanceof Stu)(Stu)(st.elementAt(i).disp();else (Tech)(st.elementAt(i).disp();3、字符串、字符串 字符串是字符的序列,它是组织字符的基本字符串是字符的序列,它是组织字符的基本数据结构,从某种程度上来说有些类似于存放数据结构,从某种程度上来说有些类似于存放字符的数组。字符的数组。在在JavaJava中,字符串被当作对象来中,字符串被当作对象来处理。处理。程

36、序中需要用到的字符串可以分为两大类。程序中需要用到的字符串可以分为两大类。一类是一类是创建之后不会再做修改和变动的字符创建之后不会再做修改和变动的字符串常量;串常量;另一类是另一类是创建之后允许再做更改和变化的字创建之后允许再做更改和变化的字符串变量。符串变量。对于字符串常量,由于程序中经常对于字符串常量,由于程序中经常需要对它做比较、搜索之类的操作,所以通常需要对它做比较、搜索之类的操作,所以通常把它放在一个具有一定名称的对象之中,由程把它放在一个具有一定名称的对象之中,由程序对该对象完成上述操作。序对该对象完成上述操作。在在JavaJava中,存放字符串常量的对象用中,存放字符串常量的对象

37、用StringString类,对于字符串变量,由于程序中类,对于字符串变量,由于程序中经常需要对它做添加、插入、修改等操作,经常需要对它做添加、插入、修改等操作,一般存放在一般存放在StringBufferStringBuffer类的对象中。类的对象中。String类创建的对象存放的是字符串常量类创建的对象存放的是字符串常量StringBuffer类创建的对象存放的是字符类创建的对象存放的是字符串变量串变量(1)(1)字符串的表示字符串的表示 1.1.字符串常量字符串常量 字符串常量使用双引号括住的一串字符,字符串常量使用双引号括住的一串字符,比如:比如:Hello world!Hello w

38、orld!Java Java编译器自动为每一个字符串常量生成编译器自动为每一个字符串常量生成一个一个StringString类的实例,因此可以用字符串常量类的实例,因此可以用字符串常量直接初始化一个直接初始化一个StringString对象,如:对象,如:String s=String s=Hello world!Hello world!;2.2.创建字符串常量创建字符串常量StringString对象对象 要创建类要创建类StringString的一个对象并进行初始化,需的一个对象并进行初始化,需要调用类要调用类StringString的构造方法。类的构造方法。类StringString中提

39、中提供了下面的一些构造方法:供了下面的一些构造方法:String()String():无参数的缺省的构造方法用来创建无参数的缺省的构造方法用来创建一个空串。一个空串。String s=new String();String s=new String();String(String value)String(String value):利用已经存在的字符:利用已经存在的字符串常量创建一个新的串常量创建一个新的StringString对象,该对象的对象,该对象的内容与给出的字符串常量一致。内容与给出的字符串常量一致。String s=new String(“hello”);String s=new

40、 String(“hello”);或:或:String s=“hello”;String s=“hello”;String(char value ):通过给构造方法传递一个字通过给构造方法传递一个字符数组,可以创建一个非空串。符数组,可以创建一个非空串。char chars =a,b,c;String s=new String(chars);String(char value ,int startIndex,int numChars):这种方法用来创建一个非空串,并且指明所创建的字符这种方法用来创建一个非空串,并且指明所创建的字符串在字符数组中的起始地址以及所包含的字符个数。串在字符数组中的起

41、始地址以及所包含的字符个数。char chars=a,b,c,d,e,f;String s=new String(chars,2,3);该方法生成的串该方法生成的串s s为为“cde”“cde”。(注意数组的下标从注意数组的下标从0 0开始开始)String(byte value,byte hibyte):因为在因为在InternetInternet上,格式采用八位的上,格式采用八位的ASCIIASCII码,所以码,所以JavaJava的类的类StringString提供了从提供了从bytebyte型数组型数组进行初始化的构造方法。其中进行初始化的构造方法。其中hibytehibyte指明各字

42、指明各字符的高位字节,对于通常所用的符的高位字节,对于通常所用的ASCIIASCII码,必码,必须将高位字节声明为零,而其他的非拉丁文字须将高位字节声明为零,而其他的非拉丁文字符则置为非零。符则置为非零。byte bytestr =97,98,99;String s=new String(bytestr,0);该方法构造的字符串该方法构造的字符串s s是是“abc”“abc”。String(byte value,byte hibyte,int startIndex,int numChars):这种构造方法与这种构造方法与String(char value,int startIndex,int

43、numChars)类似,只是初始化的数组类型不同。类似,只是初始化的数组类型不同。byte bytestr =80,81,82,83,84,85 ;String s=new String(bytestr,0,2,3);该方法构造的字符串该方法构造的字符串s s是是“RST”“RST”。String(StringBuffer buffer):这个构造函数利用一个已经这个构造函数利用一个已经存在的存在的StringBufferStringBuffer对象为新建的对象为新建的StringString对象初始化对象初始化(2)(2)字符串的基本方法字符串的基本方法 1.length1.length p

44、ublic int length()public int length()此方法返回字符串的字符个数,如:此方法返回字符串的字符个数,如:String s=abc;System.out.println(s.length();则将显示字符个数为则将显示字符个数为3 3。3、字符串、字符串2.charAt2.charAt public char charAt(int index)该方法返回字符串中该方法返回字符串中indexindex位置上的字符,其位置上的字符,其中中indexindex值的范围是值的范围是0 0length-1length-1。3、字符串、字符串3.getChars3.getC

45、hars如果要从字符串中提取一个以上的字符,则如果要从字符串中提取一个以上的字符,则可以用此方法可以用此方法:public void getchars(int srcbegin,int end,char buf,int dstbegin)其中,其中,srcbeginsrcbegin为要提取的第一个字符在源为要提取的第一个字符在源串中的位置,串中的位置,endend为要提取的最后一个字符在为要提取的最后一个字符在源串中的位置,字符数组源串中的位置,字符数组bufbuf存放目的字符存放目的字符串,串,dstbegindstbegin为提取的字符串在目的串中的为提取的字符串在目的串中的起始位置。起始

46、位置。3、字符串、字符串4.getbytes4.getbytespublic void getbytes(int srcbegin,int end,byte byt,int dstbegin)类似于上一个方法,只是串中的字符均用类似于上一个方法,只是串中的字符均用8 8位表示,参数及用法同上。位表示,参数及用法同上。3、字符串、字符串5.indexOf5.indexOf和和lastIndexOflastIndexOf为了在给定的字符串中检索特定的字符或子串,为了在给定的字符串中检索特定的字符或子串,类类StringString提供了上面两种方法,并通过方法重提供了上面两种方法,并通过方法重写更

47、方便的处理这类问题。这两种方法中,如写更方便的处理这类问题。这两种方法中,如果查找成功,则返回匹配成功的字符的位置,果查找成功,则返回匹配成功的字符的位置,如果没有查找到,则都返回如果没有查找到,则都返回-1-1。int indexOf(int ch)int lastIndexOf(int ch)返回返回字符字符chch在字符串中出现的第一个和最后一在字符串中出现的第一个和最后一个位置个位置。3、字符串、字符串int indexOf(String str)int indexOf(String str)int lastindexOf(String str)int lastindexOf(Stri

48、ng str)返回子串返回子串strstr中第一个字符在字符串中出现的始末位置。中第一个字符在字符串中出现的始末位置。int indexOf(int ch,int fromIndex)int indexOf(int ch,int fromIndex)int lastIndexOf(int ch,int fromIndex)int lastIndexOf(int ch,int fromIndex)返回字符返回字符chch在字符串中位置在字符串中位置fromIndexfromIndex以后出现的始末位以后出现的始末位置。置。int indexOf(String strint indexOf(Str

49、ing str,int fromIndex)int fromIndex)int lastIndexOf(String str,int fromIndex)int lastIndexOf(String str,int fromIndex)返回子串返回子串strstr中的第一个字符在字符串中位置中的第一个字符在字符串中位置fromIndexfromIndex以后出现的始末位置。以后出现的始末位置。3、字符串、字符串6.6.在在JavaJava中,运算符中,运算符“”可以用来实现字符串的可以用来实现字符串的连接,如:连接,如:String s=“He is”+age+”years old.”Stri

50、ng s=“He is”+age+”years old.”假设整数型变量假设整数型变量ageage的值为的值为1515,那么,那么,s s的值为的值为“He is 15 yearsOld”“He is 15 yearsOld”。pareTpareTopublic int compareTo(String str)public int compareTo(String str)该方法按字典次序比较两个字符串的大小,如果该方法按字典次序比较两个字符串的大小,如果源串较小,则返回一个小于源串较小,则返回一个小于0 0的值,如相等则返回的值,如相等则返回0 0,否则返回一个大于,否则返回一个大于0 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁