小白学Java第十一课数组及多维数组和String类

String类又称作不可变字符序列,每个被双引号括起来的字符串都是String类的一个实例,Java允许使用符号“+”把两个字符连接起来,相关练习如下:

public class Tests {
    public static void main(String[] args) {
        String a="aaa";
        String b=new String("aaa");
        String c="ccc"+"cw";
        String d="18"+19;//有一个是字符串则+为连接符
        String e="aaa";
        System.out.println(a==e);
        System.out.println(a==b);
        System.out.println(d);
        //通常比较字符串时,使用equals
        System.out.println(a.equals(b));
    }

}

此处字符串比较a与b虽然内容一样,但是b新建一个对象储存,储存地址发生改变所以用“==”比较结果为false。
在这里插入图片描述
String类的一些常用方法如下:

public class Tests1 {
    public static void main(String[] args) {
        String a="helllo";
        String b="world";
        String c="Helllo";
        System.out.println(a.charAt(2));//返回所属字符串该位置的字符
        System.out.println(a.length());//长度
        System.out.println(a.equals(b));
        System.out.println(a.equalsIgnoreCase(c));//比较两个字符串忽略大小
        System.out.println(a.indexOf("lo"));//字符串中是否包含lo
        String d=a.replace("l","a");//将a中l换成a
        System.out.println("结果是"+d);
        String s="";
        String s1="who are you?";
        System.out.println(s1.startsWith("who"));//是不是一who开头
        System.out.println(s1.endsWith("you"));//是不是以you结尾
        s=s1.substring(2);//提取字符,从下标为二的开始
        System.out.println(s);
        s=s1.substring(3,6);//提取字符串下标为4-7不包括7
        System.out.println(s);
        s=s1.toUpperCase();//转大写
        System.out.println(s);
        String s2=" my name is lisi ";
        s=s2.trim();//去除字符串首尾空格,中间空格不能去掉
        System.out.println(s);
        System.out.println(s2);

    }
}

在这里插入图片描述
System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。
示例:

//数组的拷贝
public class Testa {
    public static void main(String[] args) {
    //拷贝示例
        /*String[] a={"aa","bb","cc","dd"};
        String[] b=new String[5];
        System.arraycopy(a,1,b,1,2);
        for(int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }*/
        String[] a={"aa","bb","cc","dd","ee"};
        test(a,2);
        System.out.println("###############");
        testw();
        
    }
    //测试从数组中删除某个元素,实质也是数组的拷贝
    public static String[]  test(String [] a,int i){
        System.arraycopy(a,i+1,a,i,a.length-i-1);
        a[a.length-1]=null;
        for(int j=0;j<a.length;j++){
            System.out.println(a[j]);
        }
        return a;//将原数组返回
    }
    //数组的扩容,本质上是定义一个更大的数组,然后将原数组内容原封不动拷贝过去
    public static void testw(){
        String[] w={"aa","bb","cc"};
        String[] w1=new String[w.length+10];
        System.arraycopy(w,0,w1,0,w.length);
        for(int i=0;i<w1.length;i++){
            System.out.println(w1[i]);
        }
    }
}

删除以及扩容结果:
在这里插入图片描述
Arrays工具类的使用,这里面包含了常用的数组操作,方便我们开发。
相关操作如下:

public class Testarr {
    public static void main(String[] args) {
        int[] s={1,2,3,4,8,5};
         for(int i=0;i<s.length;i++){
            System.out.print(s[i]);
        }
        System.out.println(Arrays.toString(s));
        Arrays.sort(s);//排序
        System.out.println(Arrays.toString(s));
        System.out.println(Arrays.binarySearch(s,5));//搜索

    }
}

在这里插入图片描述
多维数组:
多维数组可以看做以数组为元素的数组,可以有二维,三维,甚至多维数组,但是实际开放中用的非常少,最多用到二维数组。
其实无论是面对二维数组还是多维数组时都应该树立一种意识,不管几维数组,其实都可以看做一维数组。
声明及初始化:

//测试二维数组
public class Testd {
    public static void main(String[] args) {
         //int[] a=new int[3];
        // People[] people=new People[3];
         int[][] aa=new int[3][];//行个数不定
         aa[0]=new int[]{10,22};
         aa[1]=new int[]{10,22,32};
         aa[0]=new int[]{10,22,54};
        System.out.println(aa[1][2]);
        int[][] bb={
                {1,2,3},
                {2,3,4}
        };//纯静态初始化
    }
}
class People{

}

多维数组储存表格:

public class Testdd {
    public static void main(String[] args) {
        Object[] q1={111,"张三",14};
        Object[] q2={122,"李四",16};
        Object[] q3={123,"王二麻子",17};
        Object[][] td=new Object[3][];
        td[0]=q1;
        td[1]=q2;
        td[2]=q3;
        for (Object[] w:td){
            System.out.println(Arrays.toString(w));
        }

    }
}

需要注意这里基本数据类型“111”,本质不是Object对象,Java编译器会自动把基本数据类型“自动装箱”包装成类对象。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值