栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第十一天学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第十一天学习笔记

1.关于String引用类型

问:类中有哪些结构?

属性 结构  构造器

探讨String类中是不是也有这些属性?

1)String s1="abcdefg"; 

String既然是一个类,s1应该叫做string类的对象 

类如果要创建对象,new ,s1并没有new,s1也可以叫做对象

2)String s2=new String ("abcdefg");

s2是通过new创建出来的String类的对象 

创建对象是要调用构造器 String s2=new String ("abcdefg");

s1指向的abcdefg和s2指向的abcdefg不在同一个区域内
双等号在字符串中,表示比较的是虚地址
虚地址:对象在内存中的存储位置
案例:

输出结果:

new出来的对象,地址一定不同,所以是s2和s3虚地址不同,s1与s2处于两个不同内存中,所以地址也不可能相等,而1和4则是处于统一内存。

2.String类的length方法:字符串中字符个数

1)不需要传参

2)有返回值,整型int;

3)访问权限public

一道面试题:字符串获取长度的方法和数组获取的方法有什么区别?

数组的length是属性,而字符串length()是方法

拓展:String 类常见方法

  • equals:字符串是否相同
  • equalsIgnoreCase:忽略大小写后字符串是否相同
  • compareTo:根据字符串中每个字符的Unicode编码进行比较
  • compareToIgnoreCase:根据字符串中每个字符的Unicode编码进行忽略大小写比较
  • indexOf:目标字符或字符串在源字符串中位置下标
  • lastIndexOf:目标字符或字符串在源字符串中最后一次出现的位置下标
  • valueOf:其他类型转字符串
  • charAt:获取指定下标位置的字符
  • codePointAt:指定下标的字符的Unicode编码
  • concat:追加字符串到当前字符串
  • isEmpty:字符串长度是否为0
  • contains:是否包含目标字符串
  • startsWith:是否以目标字符串开头
  • endsWith:是否以目标字符串结束
  • format:格式化字符串
  • getBytes:获取字符串的字节数组
  • getChars:获取字符串的指定长度字符数组
  • toCharArray:获取字符串的字符数组
  • join:以某字符串,连接某字符串数组
  • length:字符串字符数
  • matches:字符串是否匹配正则表达式
  • replace:字符串替换
  • replaceAll:带正则字符串替换
  • replaceFirst:替换第一个出现的目标字符串
  • split:以某正则表达式分割字符串
  • substring:截取字符串
  • toLowerCase:字符串转小写
  • toUpperCase:字符串转大写
  • trim:去字符串首尾空格

3.charAt方法

1)想要键盘输入输出char类型

Scanner sc=new Scanner(System.in);
char c=sc.next().charAt(0);

括号里是字符串中指定位置的下标

a的ASCII码为97,所以如果键盘输入a,输出的值为98

 4.indexOf方法:

判断指定字符是否存在,返回值为字符串在s1的下标,如果不存在,返回-1;如果后面有重复的字符
indexOf(String,int )代表从int位置开始查找;包括当前位置

String s1="abcdefgabc";

5.案例:统计一个字符串在另一个字符串中出现的次数

分别用charAt和indexof方法

indexof:

public static void main(String[] args) {
        String s1 = "abcdefgabcdaaa";
        int index = s1.indexOf("b");
        int sum = 0;
        for (int i = 0; i < s1.length(); i++) {
            if (index != -1) {
                sum++;
                index=s1.indexOf("b",index+1);
            }
        }
        System.out.println(sum);
    }

charAt:

 public static void main(String[] args) {
        String s1 = "abcdefgabcdaaa";
        int sum = 0;
        for (int i = 0; i < s1.length(); i++) {
            if (s1.charAt(i) == 'b') {
                sum++;
            }
        }
        System.out.println(sum);
    }

6.字符串的截取substring方法:

  生成一个新的字符串,不会改变原有数据

       String s = str.substring(1);
      
        包含起始位置,不包含终止位置
        s = str.substring(1,2);
        System.out.println(s);

7.案例:

键盘上输入身份证号,
 *      性别,生日。
 *      2201221990090914567

进行封装

 public String getGender(String cardId){
        String gender = "男";
        int genderNum =cardId.charAt(16);
        if(genderNum % 2 == 0){
            gender = "女";
        }
        return gender;
    }

    public String getBirthday(String cardId) {
        return cardId.substring(6, 14);
    }

    public static void main(String[] args) {
        char c = '7';
        int i = c;
       System.out.println(i);
        Ch06_Demo c = new Ch06_Demo();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身份证号:");
        String cardId = sc.next();
       if(cardId.length() == 18) {         
 String birthday = c.getBirthday(cardId);
           String gender = c.getGender(cardId);           String birthday = cardId.substring(6,14);
           String gender = "男";
           int genderNum =cardId.charAt(16);
           if(genderNum % 2 == 0){
             gender = "女";
           }
         System.out.println("身份证号为:" + cardId + ",生日:"
                    + c.getBirthday(cardId) + ",性别:" + c.getGender(cardId));
        }else{
            System.out.println("输入有误,请重新输入!");
        }
    }

8.一些常见的String类方法

public static void main(String[] args) {
        String str = "abcdEFG";
        String str1 = "        ABCDEFG          ";
        String str2 = "123,456,789,00";
       
        // 转大写
        System.out.println(str.toUpperCase());
        // 转小写
        System.out.println(str.toLowerCase());
        // 判断是否以xxxx开头
        System.out.println(str.startsWith("a",2));
        // 判断是否以xxxx结尾
        System.out.println(str.endsWith("F"));
        // 忽略大小写进行比较内容
        // 验证码
        System.out.println(str.equalsIgnoreCase(str1));
        // 去掉字符串前后的空格
        System.out.println(str1.trim());
        // 根据指定的字符分割,分割之后,分割条件是消失
        String [] strings = str2.split(",");
//        System.out.println(Arrays.toString(strings));
        for (String string : strings) {
            System.out.println(string);
        }
    }

9.字符串的替换replaceAll

String str = "hello";

     System.out.println(str.replace('e', 'c'));
        System.out.println(str.replaceAll("l", "i"));

10.包装器的作用:

自动装箱:把int类型包装成了包装器Integer类型
                基本数据类型转换成对应的包装器类型
 自动拆箱:把Integer类型转换int类型
                包装器类型转换成对应的基本数据类型
      
            JDK5之后的新功能:
            1.自动装箱和自动拆箱
            2.增强for循环(foreach)
            3.枚举
            JDK7以后的新功能:
            1.switch...case 可以用String
         */
        Integer i1 = 20;
        Integer i2 = Integer.valueOf(50);
        int ii = i2;
        int ii2 = i2.intValue();
    }
} 

11.目前涉及到的异常

* 1.数组下标越界
 * 2.内存溢出
 * 3.空指针
 * 4.字符串下标越界
 * 5.数字格式化 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号