2022-7-20 第一小组 甘源册 学习笔记


目录

知识点掌握情况

String字符串(了解) 包装器类型(理解)

学习心情(心路历程)

知识点比较简单,学起来很轻松,Nice!!!

1. String字符串

  • 	String str="aknk";		
     		String s1="aknk";
           String s = new String("aknk");
     		//s指向的aknk与s1指向的aknk不在同一个区域内
           String s2 = new String("aknk");
           System.out.println(s2==s);  // false
           System.out.println(s1==s);  // false
           System.out.println(s1==str);// true
    
  • == 双等号比较的是虚地址

  • 虚地址:对象在内存中的存储位置

  • String字符串——字符拼成的串

  • String一旦声明不可改变

1.1 String常用方法

  • equals方法(比较字符串的内容)

    • 需要传参,传String类型的参数。
    • 有返回值,返回值是布尔类型的。
    • 访问权限public
  • length方法(获取字符串的长度)

    • 不需要传参
    • 有返回值,返回值是整数型(int)的。
    • 访问权限public
    • 数组的length是属性,字符串的length()是方法
  • charAt方法(取出指定下标位置的字符)

    • 需要传参,传int类型的参数
    • 有返回值,返回字符型的。
    • 访问权限public
  • indexOf(String str)(判断指定字符是否存在,返回值为字符串的下标)

    • 需要传参
    • 有返回值:int
    • 如果不存在返回-1
  • indexOf(String str, int fromIndex)(判断指定字符是否存在,从int的位置开始找,包括当前位置,从前往后)

  • lastIndexOf(String str, int fromIndex)(意思同index’Of一样,从后往前找)

  • substring方法(截取成一个新的字符串)

    1. 传一个int参数——截取从int下标开始到最后的所有字符 (包含起始位置
    2. 传两个int参数——截取从第一个int下标到第二个int下标之间的所有字符串(不包括终止位置的字符
  • 不重要

    •     String s1="aas,ca,cfs,aga,c,aa";
          String s2="AAS";
        		s1.toUpperCase();  	//转大写
            s1.toLowerCase();  	//转小写
            s1.startsWith("a",2);	//判断以什么开头  返回布尔型
            s1.endsWith("a");   //判断以什么结尾   返回布尔型
            s1.equalsIgnoreCase(s2);//忽略大小写进行比较
            s1.trim();          // 去掉字符串前后的空格
            String[] str=s1.split(",");//根据指定的字符分割
        
      
  • replace方法(字符串的替换)

    • String s1="adasggasda";
              System.out.println(s1.replace("a", ""));//dsggsd
              System.out.println(s1.replaceAll("ada", ""));//sggasda
      
      
  • 任何数据类型和字符串做加法,结果都是字符串

  • 把其他数据类型转换成字符串,(+“”)不推荐,(valueOf(基本数据类型))推荐

  • 字符串转换成数组

    • //转成字节型的数组
         //操作文件IO流的时候用到
         private static void test3(String s1) {
             byte[] bytes=s1.getBytes();
             for (byte b : bytes) {
                 System.out.println(b);
             }
         }
      

2. 包装器类型

基本数据类型 byte short int long float double char boolean
包装类(封装类) Byte Short Integer Long Float Double Character Boolean

以后不要用基本数据类型

  • Integer的默认值是null,int的默认值是0

  • /*
        原理:
        把int类型包装成包装器的Ingeter类型
        
        * */
        static Integer a =1;
    
  • 把基本数据类型转换成对应的包装器类型——自动装箱

  • 把包装器类型转换成对应的基本数据类型——自动拆箱

2.1 包装器类型的方法

  • parseInt方法(把字符串转换成int类型)
  • toString方法(把基本数据类型转换成字符串类型)

3.拓展

  • JDK5之后的新功能:

    1. 自动装箱,自动拆箱
    2. 增强for循环(foreach)
    3. 枚举
  • JDK7以后的新功能:

    1. switch…case可以用字符串
  • 异常:

    1. 数字格式化异常
    2. 字符串下标越界异常

练习

  • 需求:查找在一个字符串中另一个字符串出现的次数,

  • 	int c=0;
           for (int i = 0; i < s1.length(); ) {
               if (s1.indexOf(s2,i)>-1){
                   i=s1.indexOf(s2,i)+1;
                   c++;
               }else{
                   i++;
               }
           }
           System.out.println(c);
    
  • 需求:根据身份证号码获取生日,性别

  •     private static void test5(Scanner scanner) {
            System.out.println("请输入您的身份证号码:");
    
            String next = scanner.next();
    
            if (next.length()==18) {
                String month = next.substring(10, 12);
                String year = next.substring(6, 10);
                String day = next.substring(12, 14);
                String gender = next.substring(16, 17);
    
                int age = Integer.parseInt(year);
                int a = Integer.parseInt(gender);
    
                System.out.println("年龄:" + (2022 - age));
                System.out.println("出生日期:" + year + "年" + month + "月" + day + "日");
    
                if (a % 2 == 0) {
                    System.out.println("性别:女");
                } else {
                    System.out.println("性别:男");
                }
            }else {
                test5(scanner);
            }
        }
    

2022-7-20 第一小组 甘源册 学习笔记

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/275715.html

(0)
上一篇 2022年7月21日
下一篇 2022年7月21日

相关推荐

发表回复

登录后才能评论