Java:数组与字符串

前言

这一章应该会有小伙伴在学习其他编程语言时候,可能会涉及到,因而会很熟悉,没有学过的,让我们一起进入这章的知识海洋吧!

一、数组

我们先来了解一下数组的特点:
(1)一个数组内的元素数据类型时相同的;
(2)数组中元素是有序的,他们在内存中按照先后顺序连接在一起;
(3)每个数组语速是用数组名和数组下标来确定的;
(4)数组下标从0开始数组的长度是指其数组元素的个数

在Java里,除了基本数据类型外,还提供了数组类型,数组类型时一致引用数据类型。数组元素可以是简单数据类型,也可以是对象数据类型。

1.1 一维数组

1 、一维数组的声明

声明数组包括数组的名字、数组包含的元素数据类型。
声明一维数组有两种格式:
(1)数组元素类型 [ ] 数组名;
(2)数组元素类型 数组名 [ ];

数组元素即可以是基本数据类型,也可以是对像的引用数据类型。例如,定义一个有三名学生的数组,每个元素均为一个学生对象,声明如下:
student [ ] student;
student student [ ];

2、数组的创建

Java不同于以前基本数据类型变量的声明,声明一个数组时, 并不在内存中给数组分配任何空间,仅仅创建了一个引用数组的存取地址。数组声明的目的只是告诉系统一个新的数组的名称和类型,数组本身不能存放任何数组元素,现阶段的数组值为null。因此,使用数组之前,需要先使用new关键字创建数组,为数组分配指定长度的内存空间。

数组分配内存格式如下:
数组名=new 数组元素的类型[ 数组的长度];

3、数组的初始化

有两种初始化结构:
(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");

4、数组的使用

(1 )数组的长度。
所有的数组都有一一个属性length (长度),它存储了数组元素的个数。例如,score.length 指明数组score的长度。
(2)数组元素的访问。
使用数组时要注意下标值不要超出范围,数组元素的下标从0开始,直到数组元素个数减I为止,如果下标超出范围,则运行时会产生“数组访问越界异常”。在实际应用中,经常借助循环来控制对数组元素的访问,访问数组的下标随循环控制变量变化。

1.2 多维数组

Java语言将多为数组看作数组的数组,也就是说,Java允许定义数组的元素时一维数组或多维数组。例如,二维数组是由看成是一个特殊的一维数组,其每一个元素均是一个一维数组;以此类推,n维数组的每个元素都是n-1维数组。

1、二维数组的声明

声明二维数组有两种格式:
(1)数组元素类型 [ ] [ ]数组名;
(2)数组元素类型 数组名 [ ] [ ];

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},…};

3、二维数组的使用

我们可以通过元素在数组的行号与列数来访问,如score[1][0],表示访问score数组的第二行第一列。
当然,我们也可以通过length来获取行数与列数;
(1)数组名.length //获取行数
(2)数组名[行号].length //获取列数

1.3 数组类Arrays

Java的工具包util中提供了工具类Arrays,该类定义了常见操作数组的静态方法,可以方便地进行数组操作(如排序和搜索等)。

Arrays提供有4种基本方法: equals( )用于比较两个数组是否相等; fill( )用于以某个值填充整个数组; sort( )用于对数组排序; binarySearch( )用于在已经排序的数组中查找元素。此外,方法asList()接受任意的数组为参数,并将其转变为List容器。

二、字符串

2.1 字符串的声明与创建

声明字符串格式如下:
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 编译器自动将常量对应的对象传递给字符串变量。

2.2 字符串类String的主要方法

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

以上的字符串方法还有许多,可自行寻找。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尋找記憶的魚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值