第五章——数组

5.1 一维数组

声明

格式:

类型标识符 数组名[]
或者:
类型标识符[] 数组名
eg:
int score[]
float[] weight

备注:类型标识符可以是类或者接口。

初始化

1.用new初始化数组:只能指定数组元素个数,为其分配存储空间,并不能赋初值。

1)先声明再初始化

int score[];
score=new int[10];

2)声明的同时初始化

int no[]=new int[10];
或者:
int[] no=new int[10]

2.赋初值初始化数组

int score[]={65,66,63};

5.2多维数组

声明

类型标识符 数组名[][]
类型标识符[][] 数组名

初始化

1.new方法:

1)先声明再初始化

int score[][];
score=new int[10][10];

备注:Java讲二维数组当作一维数组处理,只每个元素本身就又是一维数组。所以初始化时,可以各行单独进行,也允许各行元素个数不同。

2)声明的同时进行初始化

int no[][]=new int[10][10];
或者:
int[][] no=new int[10]

2.赋初值初始化

类型标识符 数组名[ ][ ]={{初值表},{初值表},....,{初值表}} 

数组长度获取

可以通过属性length获得,方法如下:

数组名.length

如果数组是二维数组,比如a[5][9]

a.length获得的是行数,5;a[0].length获取的是列数,9。

5.3数组的基本操作

数组引用

数组复制

有逐个元素赋值和直接数组赋值。直接数组赋值只能再维数相等的两个数组之间进行。

int c[][],d[][];
c=new int[2][2];
d=new int[3][3];
c=d;
//之后c变成了三行三列。

数组输出

通常是结合循环语句实现

5.4数组应用举例

1.排序

2.矩阵运算

5.5数组参数

1.形参中,数组只需要括号,不需要数组实际元素的个数。如:void f (int a[ ])

2.实际参数中,数组名后面不需要括号,只需要数组名

3.数组名做实际参数时,传递的是地址,形式参数和实际参数共用存储单元。当调用方法,在方法里面改了数组a时,方法结束将保存修改结果,传回给原来数组。

5.6字符串

1.相关概念

字符串也是常见数据类型,分为常量和变量。常量就是用" "引住的内容

变量声明:

String 变量名;

初始化:

变量名=new String(字符串常量);

或者直接String 变量名=new String(字符串常量)

字符串赋值:

s1="chinese people";
s2=s1;
s3="a lot of"+s2;
结果:s3的值是"a lot of chinese people",+号可以将前后两个字符串连接起来

 输出:

System.out.println(s);

2.字符串操作

访问字符串:

int length()返回字符串的长度。如:s.length()

char charAt(int index):返回字符串中第index个字符,返回char型

int indexOf(int ch):返回字符串中字符ch第一次出现的位置,返回值为int。如果字符串中没有int,将返回-1。

int indexOf(String str,int index):返回字符串中,从第index个位置开始,子字符串str第一次出现的位置,返回值为int。如果没有,返回-1。

substring(int index1,int index2):返回从位置index1开始到位置index2-1结束的子字符串,返回类型为String型。

字符串比较

s.equals(目标字符串):与目标字符串进行比较,返回布尔类型true或者false

s.equalsIgnoreCase(目标字符串):不考虑大小写的情况下比较两个字符串,返回布尔类型true或者false

s.compareTo(目标字符串str):与目标字符串进行大小比较,返回Int值,如果为正表示是s>str,如果为负表示s<str,如果相等返回0.

与其他数据类型的转换

1.可以与int/long/float/double/boolean等类型数据进行转换。

String.valueOf(基本数据类型)

String.valueOf(123)结果是字符串"123"

2.可以转换成字符型数组

使用toCharArray()方法

字符串数组

String[ ] str=new String[4]

main()方法有形式参数args[],类型是字符串数组,参数功能是接受运行程序时候命令行输入的参数

修改字符串

1.toUpperCase() 方法将字符串小写字符转换为大写

2.toLowerCase()方法将字符串大写字符转换为小写。

3.trim()方法用于删除字符串的头尾空白符。

4.concat() 方法用于将指定的字符串参数连接到字符串上。

5.replaceFirst() 方法使用给定的参数 replacement 替换字符串第一个匹配给定的正则表达式的子字符串。

String str2 = "Fcca-jscd-FSDS";
    
System.out.println("将第一个F替换成X:" + str2.replaceFirst("F","X"));

//结果:将第一个F替换成X:Xcca-jscd-FSDS

6.String replace(char oldChar, char newChar)

7.String replaceAll(String regex, String replacement)

功能:

replace()方法通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串。

replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串。

String str2 = "Fcca-jscd-FSDS";
        
System.out.println("将F替换成X: " + str2.replace("F","X"));
        
System.out.println("将所有的F替换成X:" + str2.replaceAll("F","X"));

运行结果:

       将F替换成X:  Xcca-jscd-XSDS

       将所有的F替换成X:Xcca-jscd-XSDS

从上面的运行结果可以看出结果是一样的,那两者有什么区别?:

       区别是replaceAll支持正则表达式的替换方式,但是replace只支持字符或字符串的替换,这两个方法都是全局的替换的。

什么是正则表达式:

       正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

参考:

(25条消息) Java进阶——使用正则表达式检索、替换String中的特定字符和关于正则表达式的一切_java 正则表达式匹配特定字符串_CrazyMo_的博客-CSDN博客https://blog.csdn.net/CrazyMo_/article/details/67634590

8.其他方法:StringBuilder——见(25条消息) java修改字符串中的字符或子字符串_java更改字符串中字符_bullshitter的博客-CSDN博客https://blog.csdn.net/qq_41159942/article/details/115870098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值