2022-07-20 第六小组 张宁杰 String类和包装器

目录

1.String类

2.包装器

导图

知识点

知识点1

String类

String(字符串) 是一个类,String一旦声明就不会改变(指内存)

public static void main(String[] args) {
        //String既然是一个类,s1应该叫做String类的对象
        //类如果要创建对象,new,s1并没有new,s1也可以叫做对象
        String s1 = "asdfd";
        s1 = "asdsasdsa";
        System.out.println(s1);
        //s2是通过new创建出来的String类的对象
        //创建对象是调用的构造器
        //只要出现new 就代表新建
        String s2 = new String("asdfd");
        String s3 = new String("asdfd");
        String s4 = "asdsasdsa";
        /**
         * s1指向的和s2指向的不在同一个区域
         *
         */
        //双等号比较的是虚地址(对象在内存中的存贮位置)
        System.out.println(s1 == s2);
        System.out.println(s2 == s3);
        System.out.println(s1 == s4);
        /**
         *  =赋值,无论怎么比较都是true
         *  new赋值,用双等号比较,都是false
         */

    }

比较字符串的内容的方法:
equals方法:
1、需要传参(传String类型的参数)
2、有布尔类型的返回值
3、访问权限public
求字符串的长度:
length方法:
1、不需要传参
2、有返回值,整型int
3、访问权限public
面试题:
字符串获取长度的方法和数组获取长度的区别?
1、数组的length是属性,字符串的length是方法
取出指定下标位置的字符:

public static void main(String[] args) {
        String s1 = "abcdefg";
        System.out.println(s1.charAt(5));
        Scanner sc = new Scanner(System.in);
        char c = sc.next().charAt(0);
        System.out.println(c);
    }

判断指定字符是否存在,返回值为字符串在s1的下标

 public static void main(String[] args) {
        String s1 = "asdfsdfasdasaasdfsa";
        //判断指定字符是否存在,返回值为字符串在s1的下标
        //返回从左到右遇到的第一个匹配的下标
        //如果不存在,返回-1
        //indexOf(String,int)代表从int位置开始查找,包括当前位置
        System.out.println(s1.indexOf("a",0));
        System.out.println(s1.lastIndexOf("a",12));
    }

字符串的截取

 public static void main(String[] args) {
        String str = "abcdefghijk";
        /*
           如果传一个参数,从指定位置开始截取,直到字符串的末尾
           包不包括1位置的字符?
           包括起始位置字符,生成一个新的字符串,不会改变原来的数据
         */
        String s = str.substring(1);
        //包含起始位置但不包含终止位置
        s = str.substring(1,2);
        System.out.println(s);
    }

判断字符串

public static void main(String[] args) {
        String str = "abCDdefg";
        String str1 ="  sd sds  ";
        String str2 = "12123,2323,321";
        System.out.println(str.toUpperCase());
        System.out.println(str.toLowerCase());
        //判断是否以...开头
        System.out.println(str.startsWith("a", 2));
        //判断是否以...结尾
        System.out.println(str.endsWith("f"));
        //忽略大小写比较内容,验证码
        str.equalsIgnoreCase(str1);
        //去掉字符串前后的空格,用在出除掉从网页端传来的数据
        str1.trim();
        //根据指定的字符分割,分割后,分割条件消失
        String[] strings = str2.split(",");
        //System.out.println(Arrays.toString(strings));
}

字符串的替换

public static void main(String[] args) {
        String str = "hello";
        str.replace("e","c");
        str.replace("he","f");
}

字符串和其他数据类型的转换

 public static void main(String[] args) {
        //字符串和数组的转换
        //数组转字符串
        //int [] arr = new int[]{1,2,3,4,5,6};
        //字符串和其他数据类型的转换
        String str = "abcdef";
        //转成字符型
        char [] arr = str.toCharArray();
        for (char c :arr) {
            System.out.println(c);
        }
        //转成字节型数组
        //一般情况下,字节型数组在操作文件的时候用IO流
        byte[] bytes = str.getBytes();
        for (byte b: bytes) {
            System.out.println(b);
        }
        int i = 10;
        //把int类型转成字符串
        String s = String.valueOf(i);
        //任何数据类型和字符串类型做加法,结果都是字符串
        String s = i +"";//null和空串不一样
        System.out.println(s);

    }

知识点2

包装器类型(包装类,封装类)

包装器类型(包装类,封装类)

  • byte----->Byte
  • short----->Short
  • int----->Integer
  • long----->Long
  • float----->Float
  • double----->Double
  • char----->Character
  • boolean----->Boolean
    为什么要有包装器类型?
    场景:
    员工管理系统
    员工:年龄 薪水
    计算平均工资,平均年龄
    如果在以上的场景中,年龄和薪水等属性被初始化为0,那么对结果的影响会非常大
    原理:
    自动装箱:把int类型包装成了包装器Integer类型
    基本数据类型转换成对应的包装器类型
    自动拆箱:把Integer类型转换成了int类型
    包装器类型转换成对应的基本数据类型
 int i = 10;
 Integer i1 = 20;
        //Integer i2 = new Integer(30);
        Integer i2 = Integer.valueOf(50);
        int ii = i2;
        int ii2 = i2.intValue();

学习感受

今天的学习难度不大,能跟上老师的节奏,但是对员工管理系统还不够熟悉,这归根结底还是对封装类和方法的思路不够清晰,需要在这点加强练习。

posted @ 2022-07-20 22:05  贵妃就是贵妃  阅读(18)  评论(0编辑  收藏  举报