第4章 数组与字符串_第1页
第4章 数组与字符串_第2页
第4章 数组与字符串_第3页
第4章 数组与字符串_第4页
第4章 数组与字符串_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

4.1数组

4.2字符串4.1数组4.1.1一维数组的定义一维数组的定义方式为:数组类型数组名[];或数组类型[]数组名;类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。数组名arrayName为一个合法的标识符,[] 指明该变量是一个数组类型变量。声明了一个整型数组,数组中的每个元素为整型数据。与C、C++ 不同,Java在数组的定义中并不为数组元素分配内存,因此 [] 中不用指出数组中元素个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。我们必须为它分配内存空间,这时要用到运算符new,其语法格式如下:数组名=new数组类型[数组的长度];为一个整型数组分配3个int型整数所占据的内存空间。通常,这两部分可以合在一起。4.1.2一维数组的初始化对数组元素可以按照上述的例子进行赋值,也可以在定义数组的同时进行初始化。用逗号(,)分隔数组的各个元素,系统自动为数组分配一定的内存空间。静态初始化静态初始化如下:intintArray[]={1,2,3,4};StringstringArray[]={"abc","How","you"};动态初始化(1)简单类型的数组,动态初始化如下:intintArray[];intArray=newint[5];(2)复合类型的数组,动态初始化如下:StringstringArray[];StringstringArray=newString[3]; //为数组中每个元素开辟引用空间stringArray[0]=newString("How"); //为第一个数组元素开辟空间stringArray[1]=newString("are"); //为第二个数组元素开辟空间stringArray[2]=newString("you"); //为第三个数组元素开辟空间4.1.3一维数组的引用定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。数组元素的引用方式为:数组名[下标];如a[3],b[i](i为整型),c[6*I] 等。下标从0开始,一直到数组的长度减1。对于上述的intArray数来说,它有3个元素,分别为intArray[0]、intArray[1]、intArray[2]。注意:没有intArray[3]。另外,与C、C++ 不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length来指明它的长度。例如:intArray.length指明数组intArray的长度。4.1.4多维数组Java中多维数组被看作数组的数组。例如,二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。以下我们主要以二维数组为例来进行说明,多维数组的情况类似。4.1.5二维数组的定义二维数组的定义方式为:数组类型数组名[][];与一维数组一样,二维数组也要使用运算符new来分配内存,才可以访问每个元素。对多维数组来说,分配内存空间有以下两种方法:(1)直接为每一维数组分配内存空间,如:inta[][]=newint[2][3];(2)从最高维数组开始,分别为每一维数组分配内存空间,如:inta[][]=newint[2][];a[0]=newint[3];a[1]=newint[3];4.1.6二维数组的初始化为数组分配完内存空间后,需要对数组进行初始化,有两种方式:(1)直接对每个元素进行赋值,如:Inta[][]=newint[2][2];a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;(2)在定义数组的同时进行初始化,如:inta[][]={{2,3},{1,5},{3,4}};定义了一个3 × 2的数组,并对每个元素赋值。4.1.7二维数组的引用引用二维数组中的每个元素,引用方式为:数组名[下标1][下标2]其中下标1、下标2分别为二维数组的第一、二维下标,可为整型常数或表达式,如a[2][3]等。同样,每一维的下标都从0开始。4.2字符串4.2.1字符串常量所谓的字符串指的是字符序列,它是组织字符的基本数据结构。在Java语言中,把字符串当作对象来处理,并提供了一系列方法对字符串进行操作,使字符串更容易处理,也符合面向对象编程的规范。单个字符用单引号来表示,例如:'J'、'A'、'V'、'A':分别表示字符J、A、V、A。常量字符串用双引号来表示,例如:"JAVA"、"Language"分别表示字符串JAVA、Language。字符串是一个字符序列,可以包含字母、数字和其他符号。Java中的字符串常量始终都是以对象的形式出现的。也就是说,每个字符串常量对应一个String类的对象。4.2.2String类字符串1.String类字符串的定义String类是用来表示字符串常量的,用它创建的每个对象都是字符串常量,一经建立就不能修改。创建对象的格式为:类型名对象名=new类型名([初始化值]);例如:Stringstr=newString("helloJava!");String类提供了很多方法,每个字符串常量对应一个String类的对象,所以一个字符串常量可以直接调用String类中提供的方法。创建String类对象的构造方法如下:Strings=newString():生成一个空串String(charchars[]):用字符数组chars创建一个字符串对象String(charchars[],intstartIndex,intnumChars):从字符数组chars中的位置startIndex起,numChars个字符组成的字符串对象。String(byteascii[],inthiByte):用字符数组ascii创建一个字符串对象,hiByte为Unicode字符的高位字节。对于ASCII码来说为0,其他非拉丁字符集为非0。String(byteascii[],inthiByte,intstartIndex,intnumChars):其作用和参数意义同上。2.String类字符串的基本操作(1) String类提供了length()、charAt()、indexOf()、lastIndexOf()、getChars()、getBytes()、toCharArray()、booleanequals(Objectobj)、equalsZgnoreCase(Stringstr)等方法。 publicintlength();此方法返回字符串的字符个数。 booleanequals(Objectobj)和equalsIgnoreCase(Stringstr)这两个方法都用来比较两个字符串的值是否相等,不同之处在于后者是忽略大小写的。运算符“==”比较两个字符串是否引用同一个实例;equals()和equalsIgnoreCase()则比较两个字符串中对应的每个字符值是否相等。为了避免错误,建议使用equals()和equalsIgnoreCase()。 publiccharcharAt(intindex)此方法返回字符串中index位置上的字符,其中index值的范围是0~length-1。 publicintindexOf(intch);publiclastIndexOf(inch);此方法返回字符ch在字符串中出现的第一个和最后一个的位置。 publicintindexOf(Stringstr);publicintlastIndexOf(Stringstr);此方法返回子串str中第一个字符出现在字符串中的第一个和最后一个的位置。 publicintindexOf(intch,intfromIndex);publiclastIndexOf(inch,intfromIndex);此方法返回字符ch出现在字符串中fromIndex位置后的第一个和最后一个的位置。 publicintindexOf(Stringstr,intfromIndex);publicintlastIndexOf(Stringstr,intfromIndex);此方法返回子串str中的第一个字符出现在字符串中fromIndex位置后的第一个和最后一个的位置。 publicvoidgetchars(intsrcbegin,intend,charbuf[],intdstbegin);srcbegin为要提取的第一个字符在源串中的位置,end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,dstbegin为提取的字符串在目的串中的起始位置。 publicvoidgetBytes(intsrcBegin,intsrcEnd,byte[]dst,intdstBegin);参数及用法同上,只是串中的字符均用8位表示。(2)修改字符串。String类提供了concat()、replace()、substring()、toLowerCase()、toUpperCase()等方法。 publicStringcontat(Stringstr);用来将当前字符串对象与给定字符串str连接起来。 publicStringreplace(charoldChar,charnewChar);用来把串中出现的所有特定字符替换成指定字符,以生成新串。 publicStringsubstring(intbeginIndex);publicStringsubstring(intbeginIndex,intendIndex);用来得到字符串中指定范围内的子串。 publicStringtoLowerCase();把串中所有的字符变成小写。 publicStringtoUpperCase();把串中所有的字符变成大写。4.2.3StringBuffer类字符串1.StringBuffer类字符串的构造方法Java语言中用来实现字符串的另一个类是StringBuffer类,与实现字符串常量的String类不同,StringBuffer类的每个对象都是可以扩充和修改的字符串变量。为了对一个可变的字符串对象进行初始化,StringBuffer类提供了以下几种构造方法: StringBuffer();建立一个空的字符串对象。 StringBuffer(intlen);建立长度为len的字符串对象。 StringBuffer(Stringstr);根据一个已经存在的字符串常量str来创建一个新的StringBuffer对象,该StringBuffer对象的内容和已经存在的字符串常量str相一致。2.StringBuffer类字符串的基本操作(1) StringBuffer类提供了length()、charAt()、getChars()、capacity()等方法。 publicintlength();用来返回字符串缓冲区的长度(字符数)。 publicintcapacity();用来得到字符串缓冲区的容量,它与length()方法所返回的值不同。 publicsynchronizedcharcharAt(intindex);用来返回字符串缓冲区中特定位置的字符。publicsynchronizedvoidgetChars(intsrcBegin,intsrcEnd,chardst[],intdstBegin);用来把字符从字符串缓冲区复制到目标字符数组dst中。 publicsynchronizedvoidsetLength(intnewLength);用来设置字符串缓冲区的长度。 toString();用来把字符串缓冲区的数据转换为字符串。(2)修改字符串。StringBuffer类提供了append()、insert()、setCharAt()等方法。如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的内存空间。 publicsynchronizedStringBufferappend(Stringstr);用来在已有字符串末尾添加一个字符串str。 publicsynchronize

温馨提示

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

评论

0/150

提交评论