《Java语言程序设计 教学课件 ppt 作者 于红 第5章__数组和字符串_》由会员分享,可在线阅读,更多相关《Java语言程序设计 教学课件 ppt 作者 于红 第5章__数组和字符串_(33页珍藏版)》请在金锄头文库上搜索。
1、第五章 数组和字符串,5.1数组,5.1.1 一维数组 1数组声明: 格式1:类型 数组名; 格式2:类型 数组名 ; 说明: (1)类型名可以是任何一种类型,包括基本数据类型和引用数据类型,特别的,可以是类名。用来定义每个数组元素的数据类型。,(2)数组名必须是一个合法的Java标识符,对每个数组元素的引用都要通过该标识符来进行。 (3)Java的数组是引用类型,在数组定义时系统只是为数组分配了一个引用空间,并不为数组元素分配空间,因此Java数组声明时不能指定数组的大小。 例如:double javaScore声明了一个名字为javaScore的数组,每个数组元素均为double类型。,2
2、创建并初始化数组对象 由于Java的数组声明并没有给数组分配空间,仅仅是给出了数组名字和元素的类型,要想使用数组,必须创建数组并对数组元素进行初始化。 Java支持两种方式创建并初始化数组对象 (1)用new运算符 格式:类型 数组名=new 类型 数组长度 说明: 1)赋值号左右两边出现的类型必须一致。,2)必须指明长度。长度可以是常量、变量或表达式,如果是变量或表达式则数组长度在程序运行时确定,否则在编译时就能确定。 3)用new创建数组时,数组元素自动初始化为数组元素所属类型的默认值。(数值型为0,布尔型为false,字符型为不可打印的0,类为null) 4)可以在声明数组的同时创建并初
3、始化数组。,3访问数组元素 创建并初始化数组之后,就可以访问该数组的各个数组元素了,访问数组元素需要用到数组下标。 格式:数组名数组下标 说明: (1)数组下标可以是常量、变量或表达式。 (2)当数组下标为变量或表达式时,其值必须在数组上下界范围之内。数组下标的下界为0,上界为数组大小-1。,4修改数组元素 虽然在创建数组的时候可以进行数组元素的初始化,但是大多数情况下,在程序中需要修改数组元素的值。 格式:数组名数组下标=修改后的数组元素值 说明: (1)对数组下标的约定同访问数组元素。 (2)赋值号右边的值类型要与数组元素的类型一致,类型不一致时需要用强制类型转换。,(3)将类对象赋值给类
4、类型的数组元素,也就是把对象的引用赋值到指定的数组元素中。 5成员变量length Java的数组中有一个特殊的属性,即数组的成员变量length,该变量在数组使用中发挥了巨大的作用,给程序员带来了很多方便。 含义:数组的成员变量length的值就是数组的大小。 使用方法:数组名.length 说明:在创建数组的时候自动确定length的值。不能通过赋值语句改变length的值,6引用数组 (1)数组元素作为方法的实在参数:数组元素与普通变量一样可以作为方法的参数。 (2)整个数组作为方法的参数:整个数组也可以作为方法的参数。整个数组作参数传递给方法时,应该使用不带方括号的数组名。 (3)Ja
5、va中的方法的返回值可以是数组,说明语句如下: public static 类型名 myMethod(int arrA) 方法的返回值是数组时,方法定义中一定要有一个与之对应的数组返回语句,该语句的返回值为指定类型数组,5.1.2多维数组 1.定义: 格式1:类型 数组名 说明:类型名后面方括号的数量表示数组维数。 例:double score 定义一个double型二维数组score 格式2:类型 数组名 说明:数组名后面的方括号的数量表示数组的维数。,2创建及初始化 格式1:类型 数组名= new 类型长度1长度2 说明: (1)赋值号左右两边方括号的数量必须一致。 (2)长度1表示数组的
6、第一维大小,长度2表示数组的第二维大小。 例如:double d=new double 56;,格式2:类型 数组名 =值列表,值列表 说明:赋值号右边大括号里面的值列表嵌套的层数必须与赋值号左边方括号数量一致。 例如:char a =a,b,c,b,d,f,3成员变量length (1)规则数组 因为二维数组可以看成是数组元素类型为一维数组的数组,因此,可以把二维数组看成一维数组,这样二维数组的length实际上是二维数组的第一维下标的大小,所谓规则数组就是指每行具有相同的元素个数的数组。 例如: double d=new double 56;,(2)不规则数组 定义:不同的行可以有不同个数
7、的数组元素,5.2 字符串,5.2.1 字符串类 字符串类不是基本数据类型,一旦被创建就不能修改它的值。对于已经存在的字符串类对象的修改都是重新创建一个新的对象,然后把新的值保存进去。字符串类的类名为String。 String 是final类,即不能被继承。,1String类的值:用“引起来的字符串。一般称为字符串类对象。 2String类对象的声明 格式:String 对象名列表 说明:String类对象声明格式与基本数据类型变量声明格式相同。 3String类对象的赋值 格式:对象名=字符串常量或字符串表达式。,4String类对象声明的同时赋值 也可以同时完成String类对象的声明和
8、赋值。 格式:String 对象名=字符串常量或字符串表达式。 5String类对象的输出 String类对象的基本输出用System.out对象的print方法来完成。,5.2.2 字符串类与字符数组的关系 1.字符数组不是字符串类。 2.字符数组可以转化为字符串类对象。 3.在输出时,可以用数组名引用整个数组的所有元素。,5.2.3 字符串类的常用方法 String类的方法。 (1)int length() 作用:返回字符串的长度,即字符串中包含的字符数。 说明:由于Java采用的是Unicode编码,因此一个汉字的长度为1。 (2) boolean equals(String Anoth
9、erString) 作用:判断字符串是否相同,(3)boolean equalsIgnoreCase(String AnotherString) 作用:判断字符串是否相同,忽略大小写 (4)boolean toUpperCase() 作用:将字符转换为大写。 (5)boolean trim() 作用:删除字符串前后空格。 说明:在进行字符串比较时空格会对比较结果产生影响,因此有时为了正确比较,忽略空格的作用时可以用该方法。,(6)char charAt(int Position) 作用:返回字符串中指定位置字符 (7)String substring(int start) 作用:从指定位置开始
10、取字符串的子串。 (8)String substring(int start,int end) 作用:从指定位置开始取字符串的指定区间的子串(不包括end位置的字符) (9)int indexOf(String aString ) 作用:对象字符串中第一次出现aString的位置,如果字符串中不包含指定子串,则返回-1。,(10)int indexOf(String aString ,int start) 作用:对象字符串中在start之后第一次出现aString的位置,如果start之后不包含指定子串,则返回-1。 (11)int lastIndexOf(String aString ) 作
11、用:对象字符串中最后一次出现aString的位置,如果字符串中不包含指定子串,则返回-1。 (12)int compareTo (String aString ) 作用:对象字符串与指定字符串比较,若前者大返回正数、相等返回0;后者大返回负数。 (13)int compareToIgnoreCase (String aString) 作用:对象字符串与指定字符串比较,不区分大小写;,5.2.4 字符串运算与转换 1用“+”操作符对两个字符串所做的运算。 2“+”可以连接任意多个字符串 3“+”可以将字符串与其他类型进行连接并自动完成其他类型到字符串类型的转换。,4.相关方法 (1)public
12、 static String valueOf( boolean b ) (2)public static String valueOf( char c ) (3)public static String valueOf( int i ) (4)public static String valueOf( long l ) (5)public static String valueOf( float f ) (6)public static String valueOf( double d ),5.3 StringBuffer StringBuffer类对象是可变对象,当对它进行修改的时候不会像S
13、tring那样重新建立对象,而是在原来的对象空间内进行操作。StringBuffer类对象只能通过构造函数来建立。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。,1所在包 java.lang,该类继承自java.lang.object,实现了Seriallizable、CharSequence接口。 2构造函数 (1)public StringBuffer():创建一个空的StringBuffer类的对象。 (2)public StringBuffer( int length ):创建一个长度为参数length的StringBuffer类的对象。
14、特别提示:如果参数length小于0,将触发NegativeArraySizeException异常。 (3)public StringBuffer( String str ):用一个已存在的字符串来创建StringBuffer类的对象。 StringBuffer类对象创建之后,大小会随着内容的变化而变化。,3StringBuffer类的方法 (1)toString方法 格式:public String toString() 功能:转换为String类对象并返回。由于大多数类中关于显示方法的参数多为String类对象,所以经常要将StringBuffer类对象转换为String类对象,再将它的
15、值显示出来。 (2)append方法 格式1:public StringBuffer append( boolean b ) 格式2:public StringBuffer append( char c ) 格式3:public StringBuffer append( int i) 格式4:public StringBuffer append( long l ),格式5:public StringBuffer append( float f ) 格式6:public StringBuffer append( double d ) 功能:分别将boolean、char、int、long、flo
16、at和double 6种类型的变量格式化成字符串之后追加到StringBuffer类的对象的后面。 格式7:public StringBuffer append( String str ) 功能:将字符串常量str追加到StringBuffer类的对象的后面。 格式8:public StringBuffer append( char str ) 功能:将字符数组str追加到StringBuffer类的对象的后面。,格式9:public StringBuffer append( char str, int offset, int len ) 功能:将字符数组str,从第offset个开始取len个字符,追加到StringBuffer类的对象的后面。 (3)insert方法 格