数组
数组的声明与创建
声明:没有具体的数据
(声明数组时不能确定数组的长度,数组的长度是在创建数组(数组初始化)中被定义的)
两种声明方式
//1.
int ints[];
//2:常用的
double[] dous;
数组创建的三种方式
1,先声明,后创建
char[] chars;
//new:创建运算符,用来创建对象
//char[10]: char类型 ,[]表示数组,10表示数组长度
//特点:数组的长度在创建时就要确定下来
例:
chars = new char[10];
2,声明的同时创建数组
float[] fls = new float[10];
3,直接赋值法
//直接赋值法的长度由里面的元素个数决定
String[] strs= {};
//数组是什么类型,元素就是什么类型;元素放在大括号里,然后元素之间必须用逗号隔开
数组元素访问:
数组元素是通过数组名和下标来访问的,即:
数组名[下标]
数组的长度即为数组元素的个数。
存取通过下标值操作,从0 开始
最大下标值,数组长度-1
判断长度的方式:lenght属性
System.out.println("数组的长度:"+strs.length);
System.out.println("最大下标值:"+(strs.length-1));
System.out.println(strs[0]);
//下标超出最大值,曝数组下标越界异常错误
//数组的取值
System.out.println(strs[4]);
//数组的赋值
strs[1]="学习";
System.out.println(strs[1]);
数组的遍历:将容器中的数据全部显示出来
数组遍历的两种方式:
普通for循环遍历
for(int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
增强for循环遍历
格式
for(数组的数据类型 变量名 数组名){
syso(变量名)
例子:
public static void main(String[] args) {
//声明一个int类型的数组ints,并采用直接赋值的方式创建数组
int[] ints={3,7,9,12,34,56,87};
//使用普通for循环来遍历数组
for(int i=0;i<ints.length;i++){//i表示数组的下标值
System.out.println(ints[i]);
}
System.out.println("==================================");
//使用增强for循环来遍历数组
/*增强for循环的格式:
* for(数组类型 变量名:数组名){
* 输出变量名即可
* }
*/
for(int a:ints){
System.out.println(a);
}
int[] intss={45,23,34,89,6,12};
//Arrays.sort(数组名):是指多某个数组进行升序排序
Arrays.sort(intss);
//Arrays.toString(数组名):是指将某个数组元素转换成字符串
System.out.println(Arrays.toString(intss));
}
- 数组的新增
- 数组的查询:遍历
- 数组总元素的修改:利用下标值覆盖
- 数组的删除:remove(下标值)
String类
String 又称为定长字符串,其含意是:一个 String 类的对象其值是不能被修改的,如果修改的话,会重新生成一个新 String 对象,并将引用指向那个新生成 的对象的地址。
在 Java 中有两种方式可以构造出一个 String 对象,一种是直接用 字符序列赋值构建 String 对象,另一种就是调用 String 类的构造方法来构建 String 对象。
String类的创建:
在Java中,字符串作为String类的对象,注意String类对象的两种创建方式。
1.String str1 = “123”;
2.String str2 = new String(“123”);
示例:
public class StringDemo {
public static void main(String[] args) {
//创建字符串的方式:
//第一种
String str="abc";
String str1="abc";
//三目运算符:条件表达式?结果一:结果二; 条件表达式结果为true时返回结果一,为false时返回结果二
System.out.println(str==str1?"str与str1两个字符串相等":"str与str1两个字符串不相等");
//第二种
String str2=new String("abc");
System.out.println(str==str2?"str与str2两个字符串相等":"str与str2两个字符串不相等");
//比较两个字符串内容是否相等用equals方法
System.out.println(str.equals(str2)?"str与str2两个字符串相等":"str与str2两个字符串不相等");
}
}
String类的常用方法:
1.equals:java.lang.String.equals() 方法比较字符串与指定的对象。
2.length:获取字符串中字符个数即字符串长度方法原型是 public int length() 。
3.split()字符串的拆分
4.substring()字符串的截取
5.indexOf()返回要查找的字符第一次出现的下标值(从前往后找第一次出现)
6.lastIndexOf()返回从后往前找字符第一次出现的下标位置
7.valueOf()方法是将其他数据类型的值转换为字符串类型
8.trim()方法是忽略字符串前后空格的
9.toUpperCase()将字符串中的字母转换成大写字母
10.toLowerCase()将字符串中的字母转换成小写字母
11.equalsIgnoreCase()不区分大小写比较字符串是否相等
示例:
public class StringDemo {
public static void main(String[] args) {
String str3="hello ";
String str4="world";
System.out.println(str3+str4);//hello world
//使用字符串的length()方法来获取字符串的长度,有多少个字符,长度就为多少
System.out.println("str3字符串的长度为:"+str3.length());
String str5="abcdefghiejk";
//str5.substring(3)表示从第四个字符开始截取字符串直到结尾
System.out.println(str5.substring(3));
//str5.substring(3, 6)表示截取第四个字符到第七个字符之间的字符串;
//截取字符串时包括开始下标处的字符,不包括结束下标处的字符
System.out.println(str5.substring(3, 6));
//返回要查找的字符第一次出现的下标值(从前往后找第一次出现)
System.out.println("e在str5字符串中的位置为:"+str5.indexOf('e'));
System.out.println("ef在str5字符串中的位置为:"+str5.indexOf("ef"));
//返回从后往前找字符第一次出现的下标位置
System.out.println("e在str5字符串中的位置为:"+str5.lastIndexOf('e'));
//valueOf()方法是将其他数据类型的值转换为字符串类型
System.out.println(String.valueOf(2));//"2"
//这是以后最常用的,如果将整型数字转换城String类型的直接+"";
int i=2;
String s=i+"";//"2"
System.out.println(String.valueOf(true));//"true"
String s1=" Hello World ";
System.out.println("s1="+s1);
//trim()方法是忽略字符串前后空格的
System.out.println("忽略空格后:"+s1.trim());
//toUpperCase()将字符串中的字母转换成大写字母
System.out.println("转换成大写字母:"+s1.toUpperCase());
//toLowerCase()将字符串中的字母转换成小写字母
System.out.println("转换成小写字母:"+s1.toLowerCase());
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字母:");
String logo=sc.next();
//不区分大小写比较字符串是否相等
if(logo.toLowerCase().equals("n")){
}
}
项目中新增的思路:
首先在控制台输入学生信息,然后将输入的信息整为一个字符串(可以加分隔符,也可以不加),然后存储到数组中(那么当前数组就是字符串类型的数组)
项目中查询的思路:
遍历数组。(如果加分隔符,我们还需要拆分字符串,如果没有直接使用),当前下标值
项目中的修改:
修改之前首先查询,根据下标值进行修改
项目中的删除:
删除之前首先查询,根据下标值进行删除