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 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
参考:
8.其他方法:StringBuilder——见(25条消息) java修改字符串中的字符或子字符串_java更改字符串中字符_bullshitter的博客-CSDN博客https://blog.csdn.net/qq_41159942/article/details/115870098