目录
数组
一维数组:
创建一维数组:
数组元素的类型决定了数组的数据类型,声明数组的方法如下:
数组元素类型 数组名字 [ ];
数组元素类型 [ ] 数组名字;
声明完数组后,还应该定义出数组的元素类型与数组大小,定义方法如下:
数组名字 = new 数组元素类型 [ 数组元素的个数 ];
在实际使用中,可以将上述两个拼接起来,方法如下:
数组元素类型 数组名 = new 数组元素类型 [ 数组元素个数 ];
一维数组赋值:
常见方法如下:
int a [ ]={1,2,3};
int b [ ] =new int [ ] {4,5,6};
获取数组长度:
数组对象自带length属性
例:使用数组长度获取班级总人数
package unit1;
public class GetArrayLength {
public static void main(String args[]) {
String arr[]= {"张三","李四","王五","赵六"};
System.out.println("本班级一共有:"+arr.length+"人");
for(String cx:arr) {
System.out.println(cx);
}
}
}
二维数组
创建二维数组:
二维数组常用于表示二维表
,表中的信息以行和列的形式展示,第一个下标表示元素所在的行,第二个下标表示元素所在的列。
声明方法:
数组元素类型 数组名字 [ ] [ ];
数组元素类型 [ ] [ ] 数组名字;
分配内存地址空间:
int a [ ] [ ];
a=new int [2] [4];
注意:在二维数组中可以只声明行的个数,不声明列的个数,但不可只声明列不声明行。
二维数组赋值:
常见方法:
int ss [ ] [ ] ={ {1,2,3},{4,5,6},{7,8,9}};
可以看出二维数组中每个元素都是一个一维数组,故可以使用如上的这种赋值方式
例:使用二维数组对一首古诗横向输出和竖向输出
package unit1;
public class Poetry {
public static void main(String args[]) {
char arr[][]= new char [][]{{'春','眠','不','觉','晓'},{'处','处','闻','啼','鸟'},{'夜','来','风','雨','声'},{'花','落','知','多','少'}};
System.out.println("--------------横板");
for(int i=0;i<4;i++) {
for(int j=0;j<5;j++) {
System.out.println(arr[i][j]);
}
if(i%2==0) {
System.out.println(",");
}
else System.out.println("。");
}
System.out.println("-------------竖版");
for(int j=0;j<5;j++) {
for(int i=3;i>=0;i--) {
System.out.println(arr[i][j]);
}
System.out.println("\r"+"\n");
}
System.out.println("。,。,");
}
}
不规则数组
上述的数组均是行与列固定的矩形方阵,但在二维数组中,不同行元素个数可以不同。例如:
int a [] []=new int [3] [];
a[0]=new int[5];
a[1]=new int[4];
a[2] =new int[3];
遍历数组
遍历数组就是获取数组中的每个元素,通常遍历数组都是使用for循环完成的。
例:遍历不规则数组
package unit1;
public class Trap {
public static void main(String args[]) {
int b[][]= {{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++) {
for(int c=0;c<b[k].length;c++) {
System.out.println(b[k][c]);
}
}
}
}
数组元素的填充与批量替换
数组定义完成后,可通过Arrays类的静态方法fill()方法来对数组中的元素进行分配,语法如下:
Arrays.fill(int [] a ,int value);
注意:只能使用一维数组,二维数组要模拟成一维数组进行操作
字符串
声明与创建字符串
1.引用字符串常量
String a="锄禾日当午";
2.利用构造方法实例化
String a=new String("锄禾日当午");
3.利用字符数组实例化
char[ ] chararray={'锄','禾','日','当','午'};
String a=new String (chararray);
4.提取字符数组中的一部分创建字符串对象
char[] array={1,2,3,4,5,6};
String a=new String(array,3,2);
从array数组的第三个索引开始抽取两个元素组成字符串。
字符串的连接
使用+运算符可以连接多个字符串并形成一个String对象,+=也可以。
String a="123";
String b="456";
a+=b;
使用String自带的concat()可以将指定字符串连接在末尾
a.concat(str);
获取字符串的长度
定义一个字符串,可以通过length()来返回字符串长度。
int size=num.length();
获取指定位置的字符
charAt(int index); //str为任意字符串的对象,index为值的索引
例: char chr=str.charAt(4);
获取子字符串索引位置
indexOf(substr); //a为任意字符串对象,substr为要搜索的字符或字符串
indexOf搜索到该字符第一次出现的位置索引,如果没有搜索到,则返回-1
判断字符串首尾内容
str.startsWith(String ck); //str为任意字符串,ck为作为前缀的字符串
该方法用于判断字符串是否以指定字符前缀开始。
str.endsWith(String ck); //str为任意字符串,ck为指定后缀字符串
该方法用于判断字符串是否以指定字符后缀结束。
例:使用判断来确定限行车牌问题
package unit1;
public class StringEndsWith {
public static void main(String args[]) {
String licensePlates[]= {"苏A00001","浙A00002","陕A00003"};
String number="2";
String num="苏";
System.out.println("今日限号:"+number+" "+"今日限区:"+num+" "+"限行车牌有:");
for(int i=0;i<licensePlates.length;i++) {
if(licensePlates[i].startsWith(num)||licensePlates[i].endsWith(number)) {
System.out.println(licensePlates[i]+" ");
}
}
}
}
获取字符数组
toCharArray()方法可以将字符串转换为一个字符数组,语法如下:str.toCharArray();
可以将字符串转换为一个字符数组。
例:String str="这是一个字符串";
char [] ch=str.toCharArray();
判断子字符串是否存在
str.contains(string); //查询string字符串是否存在于str中
截取字符串(根据索引)
substring()方法返回一个新字符串,它是此字符串的一个子字符串,该字符串从指定的beginIndex处的字符串开始,直到索引endIndex-1处的字符,例如 str.substring(beginIndex,endIndex); //其中begin包括在子字符串中,而end不包括在子字符串中
字符串替换
str.replace(oldstr,newstr); //replace可以将指定的字符序列替换成新的字符序列,可用于替换错别字
字符串分割
str.split(regex); //可以将str中的字符串按照regex划分为部分放入数组
例:使用split来进行菜单分割
package unit1;
public class StringSplit {
public static void main(String args[]) {
String a="蒸羔羊,蒸熊掌,清蒸鲈鱼,叫花鸡,盐水鸭,鸭血粉丝汤,羊肉泡馍";
String[] ac=a.split(",");
for(int i=0;i<ac.length;i++) {
System.out.println("提供的第"+(i+1)+"个菜品为"+ac[i]);
}
}
}
大小写转化
1.toLowerCase()方法可将字符串中的所有字符转换为小写。
2.toUpperCase()方法可将字符串中的所有字符转换为大写。
去除空白内容
str.trim(); //可以将str中的空白内容全部删除
比较字符串是否相等
ctr.equals(str);
可以判断ctr与str是否相等,可以替换为ctr==str
可变字符串StringBuffer类
创建一个新的stringbuffer类
Stringbuffer sbf=new Stringbuffer(32);
利用append(obj)方法可以给sbf后面添加序列,obj可以为任何类型的数据。
sbf.setCharAt(index,ch);可以将给定索引处的字符修改为ch。
sbf.insert(offset,str);可以将字符串str的值插入到offset索引值的后面。
sbf.delete(start,end);可以将字符串的start到end的字符删除。