这一章应该会有小伙伴在学习其他编程语言时候,可能会涉及到,因而会很熟悉,没有学过的,让我们一起进入这章的知识海洋吧!
我们先来了解一下数组的特点:
(1)一个数组内的元素数据类型时相同的;
(2)数组中元素是有序的,他们在内存中按照先后顺序连接在一起;
(3)每个数组语速是用数组名和数组下标来确定的;
(4)数组下标从0开始,数组的长度是指其数组元素的个数。
在Java里,除了基本数据类型外,还提供了数组类型,数组类型时一致引用数据类型。数组元素可以是简单数据类型,也可以是对象数据类型。
声明数组包括数组的名字、数组包含的元素数据类型。
声明一维数组有两种格式:
(1)数组元素类型 [ ] 数组名;
(2)数组元素类型 数组名 [ ];
数组元素即可以是基本数据类型,也可以是对像的引用数据类型。例如,定义一个有三名学生的数组,每个元素均为一个学生对象,声明如下:
student [ ] student;
student student [ ];
Java不同于以前基本数据类型变量的声明,声明一个数组时, 并不在内存中给数组分配任何空间,仅仅创建了一个引用数组的存取地址。数组声明的目的只是告诉系统一个新的数组的名称和类型,数组本身不能存放任何数组元素,现阶段的数组值为null。因此,使用数组之前,需要先使用new关键字创建数组,为数组分配指定长度的内存空间。
数组分配内存格式如下:
数组名=new 数组元素的类型[ 数组的长度];
有两种初始化结构:
(1)在声明时候初始化
double [ ] score={98,96,93};
上面的语句相当于下面:
double score [ ] =new double [4];
score [0]=98;
score [1]=96;
score [2]=93;
(2) 将数组元素当成对象的引用数据类型,数组初始化时需要创建对象:
student =new student [3];
student [0]=new student ("a");
student [1]=new student ("b");
student [2]=new student ("c");
(1 )数组的长度。
所有的数组都有一一个属性length (长度),它存储了数组元素的个数。例如,score.length 指明数组score的长度。
(2)数组元素的访问。
使用数组时要注意下标值不要超出范围,数组元素的下标从0开始,直到数组元素个数减I为止,如果下标超出范围,则运行时会产生“数组访问越界异常”。在实际应用中,经常借助循环来控制对数组元素的访问,访问数组的下标随循环控制变量变化。
Java语言将多为数组看作数组的数组,也就是说,Java允许定义数组的元素时一维数组或多维数组。例如,二维数组是由看成是一个特殊的一维数组,其每一个元素均是一个一维数组;以此类推,n维数组的每个元素都是n-1维数组。
声明二维数组有两种格式:
(1)数组元素类型 [ ] [ ]数组名;
(2)数组元素类型 数组名 [ ] [ ];
(1)用new关键字初始化
格式如下:数组名=new 数组元素类型 [ 数组行数] [ 数组列数];
举例:score=new double [4][3];
上面的二维数组表示score表示的是四行三列的数组,初始化时每个元素为0.0;
二维数组的元素是一维数组,因此初始化时也允许各行单独进行。例如,采用如下方式赋值,
double score [ ][ ];
score =new double [3][ ];
score [0]=new double [3];
score [1]=new double [2];
score [2]=new double [4];
(2) 用赋初值方法初始化
格式如下: 类型 数组名 [ ][ ]={{初值表1},{初值表1},…};
我们可以通过元素在数组的行号与列数来访问,如score[1][0],表示访问score数组的第二行第一列。
当然,我们也可以通过length来获取行数与列数;
(1)数组名.length //获取行数
(2)数组名[行号].length //获取列数
Java的工具包util中提供了工具类Arrays,该类定义了常见操作数组的静态方法,可以方便地进行数组操作(如排序和搜索等)。
Arrays提供有4种基本方法: equals( )用于比较两个数组是否相等; fill( )用于以某个值填充整个数组; sort( )用于对数组排序; binarySearch( )用于在已经排序的数组中查找元素。此外,方法asList()接受任意的数组为参数,并将其转变为List容器。
声明字符串格式如下:
String stringname;
(1)使用字符串构造方法。
字符串构造方法有四个:
public String ( ); //创建一个空的字符串
public String (String s ); //用已有字符串创建新的string(**最常用**)
public String ( StringBuffer buf); //用StringBuffer对象的内容初始化新的String
public String ( char value[ ]); //用已有的字符数组初始化新的string
这里注意:
第二个是最为常用,举例:String s=new String(“hello world”);
第四个使用另一个串作为参数创建一个新串对象。例子如下:
Char [ ] helloArray ={'h','e','l','l'.'o'};
String s=new String (helloArray);
(2)使用赋值语句
也可以直接给String变量赋值。举例如下。
String s=“student”;
这里需要注意,字符串常量在Java 中也是以对象形式存储,Java编译时将自动为每个字符串常量创建一个对象。 因此,将字符串常量传递给字符串变量时,Java 编译器自动将常量对应的对象传递给字符串变量。
1.获得字符串长度
字符串的长度是指字符串内包含的字符个数,例如,字符串“我爱你china” 的长度为9。确定字符串长度的方法格式如下。
public int length () ;
可以使用字符串.length()的形式来获得字符串的长度,举例如下。
String s2=new String ("我爱你china") ;
System. out. println (s2.length());
2.截取一个字符
public char charAt (int index)
该方法返回指定索引处的char值。索引范围为从0到length()-1。字符串的第一个char值在索引0处,第二个在索引1处,依此类推。举例如下。
char ch;
ch=“abc”.charAt(1) ;返回’b’
3.字符串相等比较
public boolean equals (String s)
字符串对象调用String 类的equals方法,比较当前字符串对象是否与参数制定的字符串s对象相同。举例如下。
String s1=“Hello”;
String s2=new String (“Hello”);
s1.equals(s2); //true
Java提供忽略大小写的字符串相等比较方法,其格式如下。
public boolean equalsIgnoreCase (String anotherString)
将此String与anotherString进行比较,不考虑大小写。如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。举例如下。
“hello”. equalsIgnoreCase (“Hello”) ; //true
需要注意的是,“==”运算符比较两个对象是否引用同一实例。举例如下。
String s1="Hello";
String s2="Hello";
tring s3=new String("Hello");
boolean b1=(s1==s2); //true
boolean b2=(s1==s3);//false
s1.equals(s3); //true
以上的字符串方法还有许多,可自行寻找。