《Java数组与字符串》由会员分享,可在线阅读,更多相关《Java数组与字符串(21页珍藏版)》请在金锄头文库上搜索。
1、 第5章 数组与字符串 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来 使用数组中的数据。下标从0开始排序。 51 声明数组 声名数组包括数组的名字、数组包含的元素的数据类型。 声明一维数组有下列两种格式: 数组元素类型 数组名字:int a; 数组元素类型 数组名字;int a; 声明2维数组有下列两种格式: 数组元素类型 数组名字;int a; 数组元素类型 数组名字;int a; 例如: float boy; double girl;char cat;char dog; float a; double b;char d;char dog;将来数组boy的元素可
2、以存放float型数据。数组的元素的类型可以是Java的任何一种类型。假如已经定义了一个People类,那么 可以声明一个数组:People china;People china;/People类的对象数组将来数组china元素可以存放People类型数据,即People类创建的对象。 52 创建数组 声明数组仅仅是给出了数组名字和元素的数据类型,要想真正地使用数组还必须为它 分配内存空间,即创建数组。在为数组分配内存空间时必须指明数组的长度。为数组 分配内存空间的格式如下:数组名字=new 数组元素的类型数组元素的个数; 例如 :boy=new float7;声明数组和创建数组可以一起完成,
3、例如: float boy=new float7; 二维数组和一维数组一样,在定义之后必须用new运算符分配内存空间,例如: int mytwo;mytwo=new int35; 或 int mytwo=new int34; 注:和C语言不同的是,Java允许使用int型变量指定数组的大小,例如:int size=30; double number=new doublesize; size=20; /我们现在提到的数组是定长的53 数组元素的使用 一维数组通过下标符访问自己的元素,如boy0、boyll等。需要注意的是下标从0开始 ,因此,数组若是7个元素,下标到6为止,如果使用了如下语句将发
4、生异常。 boy7=384.98f; 二维数组也通过下标符访问自己的元素,如a01,a12等。需要注意的是下标从0开 始,比如声明创建了一个二维数组a: int a=new int23;a00=0;那么第一个下标的变化范围从0到1,第二个下标变化范围从0到2。如果使用了如下语 句将发生异常。 a21=38;a03=90; 例子:shuzu1.javaimport java.applet.*; import java.awt.*; public class shuzu1 extends Applet float a;public void init() a=new float 5;a0=23.9
5、f;a1=34.9f;a2=45f;a3=56.98f;a4=100f;public void paint (Graphics g)g.drawString(“a0=“+a0+“a1=“+a1+“a2“+a2+“a3=“+a3+“a4=“+ a4,12,12); 注:有一个重要的表示数组长度的(即元素的个数)格式。例如创建了float a=new float6 ,则a.length的值为6。 54数组的初始化 创建数组后,系统会给每个数组元素一个默认的值,如float型是0.0。我们在声明数组时,同时也还可以给数组的元素一个初始值,如:float boy=12.3f,23.89f,2.0f,2
6、3f,578.98f; 上述语句相当于: float boy=new float5; boy0=12.3f;boy1=23.89f;boy2=2.0f;boy3=23f;boy4=578.98f; 例如: String S=“we“,“are“,“hello“,“123“,“who?“; 55 字符串 Java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是类类型变量,是一个对象。1字符串常量:如“你好“,“1234.987“,“weqweo“。”a” a2声明字符串:String S;3创建字符串:使用String类的构造方法。例如:S=new String(
7、“We are students“);也可写成:S=“We are students“;声明和创建可用一步完成:String S=new String(“We are students“);或String S=“We are students“;也可以用一个已创建的字符串创建另一个字符串,如:String tom=new String(S);相当于:String tom=“We are students“; String类还有两个较常用构造方法。 (1) String(char a):用一个字符数组a创建一个字符串对象,例如:char a=b,o,y;String s=new String(a
8、);上述过程相当于: String s=“boy“; (2)String(char a,int startIndex,int count):提取字符数组a中的一部分字符创建一个字符 串对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截 取的字符个数,例如:char a=s,t,b,u,s,n;String S=new String(a,2,3); 上述过程相当于: String S=“bus“; 551 怎样获取字符串的长度 使用String类中的length()方法可以获取一个字符串的长度,如:String s=“we are students”,to
9、m=“我们是学生”;int nl,n2;n1=s.length();n2=tom.length();那么n1的值是15,n2的值5。 字符串常量也可以使用length()获得长度,如”你的爱好”.length()的值是4。 字符串比较1equals方法 字符串对象调用String类中的public boolean equals(String s)方法,比较当前 字符串对象的实体是否与参数指定的字符串s的实体相同,如: String tom=new String(“we are students“); String boy=new String(“We are students“); Strin
10、g jerry= new String(“we are students“); tom.equals(boy)的值是false,tom.equals(jerry) 的值是true。 注:tom=jerry的值是false。因为字符串是对象,tom、jerry是引用。 2equalsIgnoreCase方法 equalsIgnoreCase字符串对象调用public boolean equalsIgnoreCase(String s)方法,比较当前字 符串对象与参数指定的字符串s是否相同,比较时忽略大小写,如: String tom=new String(“ABC“), Jerry=new St
11、ring(“abc“);tom.equalsIgnoreCase(Jerry)的值是true。 0x54c780xAb98tomjerrywe are studentswe are students字符串对象调用public boolean startsWith(String s)方法,判断当前字符串对象的前缀 是否是参数指定的字符串s,如:endsWith(String s) String tom=“220302620629021“,jerry=“21079670924022“; tom.startsWith(“220“)的值是true;jerry.startsWith(“220“)的值是f
12、alse。 如:例题starwith.java4regionMatches方法 字符串调用public boolean regionMatches(int firstStart,String other,int otherStart,int length)方法,从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子 串,并将这个子串和参数other指定的一个子串进行比较,其中,other指定的子串是从 参数otherStart指定的位置开始,从other中取长度为length的一个子串。如果两个子串 相同该方法就返回true,否则返回false。使用该方法的重载方法
13、public boolean regionMatches(boolean b,int firstStart,String other,int otherStart,intlength)可以通过参数b决定是否忽略大小写,当b取true时,忽略 大小写。 在下面的例子rematch中,我们判断:个字符串中共出现了几个en。 pareTo、compareToIgnoreCase方法字符串对象可以使用String类中的public int compareTo(String s)方法,按字典序与参 数s指定的字符串比较大小。如果当前字符串与s相同,该方法返回值0;如果当前字符 串对象大于s,该方法返回正
14、值;如果小于s,该方法返回负值。例如:String str=“abcde“;pareTo(“boy“)小于0;pareTo(“aba“)大于0; pareTo(“abcde“)等于0。按字典序比较两个字符串还可以使用public int compareToIgnoreCase(String s)方法, 该方法忽略大小写。 下面的例子54将一个字符串数组按字典序重新排列。 553 字符串检索 1搜索指定字符串出现的位置 public int indexOf(String s):字符串调用该方法从当前字符串的头开始检索字符串s, 并返回首次出现s的位置。如果没有检索到字符串s,该方法返回的值是1。
15、 public int indexOf(String s,int startpoint):字符串调用该方法从当前字符串的 startpoint位置处开始检索字符串s,并返回首次出现s的位置。如果没有检索到字符串s ,该方法返回的值是-1。 public int lastIndexOf(String s):字符串调用该方法从当前字符串的头开始检索字 符 串s,并返回最后出现s的位置。如果没有检索到字符串s,该方法返回的值是-1。 public int lastIndexOf(String s,int startpoint):字符串调用该方法从当前字符串的 starpoint位置处开始检索字符串s,并返回最后出现s的位置。如果没有检索到字符串s ,该方法返回的值是-1。 例如: String tom=“I