JAVA 学习随笔记录 (三)数组与字符串

目录

数组

一维数组:

创建一维数组:

一维数组赋值:

获取数组长度:

二维数组

创建二维数组:

 二维数组赋值:

 不规则数组

遍历数组

数组元素的填充与批量替换

字符串

声明与创建字符串 

字符串的连接

获取字符串的长度

获取指定位置的字符

获取子字符串索引位置

判断字符串首尾内容

获取字符数组

判断子字符串是否存在

截取字符串(根据索引)

 字符串替换

 字符串分割

 大小写转化

去除空白内容

比较字符串是否相等

可变字符串StringBuffer类


数组

一维数组:

创建一维数组:

数组元素的类型决定了数组的数据类型,声明数组的方法如下:

数组元素类型 数组名字 [ ];

数组元素类型 [ ]  数组名字;

声明完数组后,还应该定义出数组的元素类型与数组大小,定义方法如下:

 数组名字  = 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的字符删除。

发布了15 篇原创文章 · 获赞 8 · 访问量 923

猜你喜欢

转载自blog.csdn.net/caicai779369786/article/details/90051550