Java学习03----常用API

目录

顶层父类Object

控制台录入Scanner

字符串处理String

字符串处理:StringBulider 和 StrngBuffer

日期获取:Date和Calender

基本类型的包装类


顶层父类Object

简介:

          类层次结构最顶层的基类,所有类都直接或间接地继承自Object类,所以所有的类都是一个Object(对象)

构造方法:

          Object():构造一个对象,所有子类对象初始化时都会优先调用该方法

成员方法:

  •           int hashCode();返回该对象的哈希值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同
  •           Class<?> getClass();返回调用此方法对象的运行时类对象(调用者的字节码文件对象)
  •           String toString();返回该对象的字符串表示,若不重写,输出的是对象的地址,地址由全类名(模块+包+类) + @ + 计算的哈希值的无符号十六进制
  •                                                                                重写,一般输出全属性值的拼接
  •           boolean equals();返回其他某个对象是否与此对象“相等”,默认情况下比较两个对象的引用(地址值),建议重写
public static void main(String[] args) {
        // 1.创建Object类型对象
        Object obj1 = new Object();
        Object obj2 = new Object();

        //返回地址计算得到得hash值 不同对象的哈希值一般不同
        int code1 = obj1.hashCode();
        int code2 = obj2.hashCode();
        System.out.println(code1);
        System.out.println(code2);

        System.out.println("-------------------");
        //比对的是对象的引用(地址)
        System.out.println(obj1.equals(obj2));
        System.out.println("-------------------");
        

        String str1 = obj1.toString();
        String str2 = obj2.toString();
        //toString 输出的是对象的地址 地址由全类名(模块+包+类) + @ +计算的哈希值的无符号十六进制
        System.out.println(str1);
        System.out.println(str2);

        System.out.println("-------------------");

        Class clazz1 = obj1.getClass();
        Class clazz2 = obj2.getClass();

        //返回字节码文件
        System.out.println(clazz1);
        System.out.println(clazz2);

    }

 打印结果

   

  • 注意: toString@后面结果=哈希值的无符号十六进制

                                           

  • toString() 和 equals()方法的重写 
 public static void main(String[] args) {
        Student stu1 = new Student(1, "张三", 22);
        Student stu2 = new Student(2,"李四", 23);
        Student stu3 = stu1;
        /*String str1 = stu1.toString();
        String str2 = stu2.toString();

        System.out.println(str1);
        System.out.println(str2);*/

        //输出语句直接打印对象 默认调用该对象的toString方法
        System.out.println(stu1); // == stu1.toString()
        System.out.println(stu2);

        boolean isequal_1 = stu1.equals(stu2);
        boolean isequal_2 = stu1.equals(stu3);
        System.out.println(isequal_1);
        System.out.println(isequal_2);
        
    }

 

控制台录入Scanner

简介:

扫描器。能够解析字符串和基本数据类型的数据

构造方法:

Scanner(InputStream):构造一个扫描器对象,从指定输入流中获取数据;参数System.in,对应键盘录入

成员方法:

  • haxNextXxx():判断是否有下一个输入项,其中Xxx可能是任意基本类型数据,返回结果是布尔类型
  • nextXxx():获取下一个输入项,返回对应Xxx类型的数据
  • String nextLine():获取下一行数据。以换行符作为分隔符
  • String next():获取下一个输入项,以空白字符作为分隔符;空白字符:空格 tab 回车
public static void main(String[] args) {
        // 创建Scanner类型对象
        Scanner sc = new Scanner(System.in);
        //提示用户输入
        System.out.println("请输入一个整数: ");
        // 避免输入数据类型非法导致异常
        if(sc.hasNextInt()) {
            int num = sc.nextInt();
            System.out.println("num: " + num);
        } else {
            System.out.println("您输入的是非法数据!");
        }
    }
---------------------------------------------------------

public static void main(String[] args) {
        // 创建Scanner类型对象
        Scanner sc = new Scanner(System.in);
        //提示用户输入
        System.out.println("请输入一串字符串: ");
        String str = sc.nextLine();
        System.out.println("----------------");
        System.out.println(str);
    }
---------------------------------------------------------
public static void main(String[] args) {
        // 创建Scanner类型对象
        Scanner sc = new Scanner(System.in);
        //提示用户输入
        System.out.println("请输入若干字符串,以空格分开");
        String str2 = sc.next();
        System.out.println(str2);
    }

                                


字符串处理String

简介:

字符串。每一个字符串对象都是常量

构造方法:

String(byte[]) 构造一个String对象,将指定字节数组中的数据转化成字符串

String(char[]) 构造一个String对象,将指定字符数组中的数据转换成字符串

成员方法:

  • boolean equals(String):判断当前字符串与给定字符串是否相同,区分大小写
  • boolean equalsIgnore(String):不区分大小写
  • boolean startWith(String):判断是否以给定字符串开头
 public static void main(String[] args) {
        //测试构造方法
        // 1.将指定的字节数组转成字符串
        byte[] bys = {97, 98, 99};
        String s1 = new String(bys);
        System.out.println("s1: " + s1);


        // 2.将指定的字符数组转成字符串
        char[] chs = {'h', 'e', 'l', 'l', 'o'};
        String s2 = new String(chs);
        System.out.println("s2: " + s2);

        // 实际开发中, String类进行了优化 可直接赋值
        String s3 = "abc";
        System.out.println("s3: " + s3);

        // 测试成员方法
        String str1 = "abc";
        String str2 = "ABC";
        //.equals()
        boolean b1 = str1.equals(str2);
        System.out.println("equals(): " + b1);
        //.equalsIgnoreCase()
        boolean b2 = str1.equalsIgnoreCase(str2);
        System.out.println("equalsIgnoreCase(): " + b2);
        //.startWith()
        boolean b3 = str1.startsWith("ab");
        System.out.println(b3);
    }

  • int length():获取当前字符串长度
  • char charAt(int index): 获取指定索引位置的字符
  • int indexOf(String):获取指定字符(串)第一次出现的索引
  • int lastIndexOf(String): 获取指定字符(串)最后一次出现的索引
  • String substring(int): 获取指定索引位置(含)之后的字符串
  • String substring(int,int):获取从索引start位置(含)至索引 end位置(不含)的字符串
public static void main(String[] args) {
        String str = "白玫瑰得得得之所愿得之所愿白玫瑰";
        // 成员方法.length()
        System.out.println(str.length());
        // 获取字符‘得’第一次出现的索引
        int index1 = str.indexOf('得');
        System.out.println("index1: " + index1);
        // 获取字符'得'最后一次出现的索引
        int index2 = str.lastIndexOf('得');
        System.out.println("index2: " + index2);
        // 截取从索引5开始的所有元素
        String s1 = str.substring(5);
        System.out.println("s1: " + s1);
        // 截取5-9之间
        String s2 = str.substring(5,9);
        System.out.println("s2: " + s2);
    }

  •  byte[] getBytes(): 将字符串转为字节数组
  • char[] toCharArray():将字符串转为字符数组
  • static String valueOf():将指定类型数据转换成字符串   注意:静态成员方法调用方式 类名.方法 
  • String replace(old,new):将指定字符(串)替换成新的字符(串)
  • String split(String):切割字符串
  • String trim():去除字符串两端空白符
public static void main(String[] args) {
        String a1 = "abc";
        //字符串转字节数组
        byte[] bys = a1.getBytes();
        for (byte by : bys) {
            System.out.println(by);
        }

        System.out.println("---------------------");
        //字符串转字符数组
        char[] chs = a1.toCharArray();
        for (char ch : chs) {
            System.out.println(ch);
        }
        System.out.println("---------------------");
        //整型转字符串
        int num = 123;
        String s1 = String.valueOf(num);
        System.out.println(s1 + 4);
        System.out.println("---------------------");
        // 替换
        String ss = "aaabbbccc";
        String ss_r = ss.replace('a', 'd');
        System.out.println("ss: " + ss);
        System.out.println("ss_r: " + ss_r);
        System.out.println("----------------------");
        //分割字符串
        String s2 = "abc abc abc abc";
        String[] s3 = s2.split(" ");
        for (String s : s3) {
            System.out.println(s);
        }
        System.out.println("---------------------");
        // 去除前后空格
        String s4 = "  jdj jdssdja  ljl    ";
        String s5 = s4.trim();
        System.out.println(s4);
        System.out.println(s5);
    }

 


字符串处理:StringBulider 和 StrngBuffer

简介:

可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。StringBuilder和StringBuffer使用相同的API。

构造方法:

StringBuilder():构造一个空的StringBuilder容器

StringBuilder(String):构造一个StringBuilder容器,并添加指定字符串

成员方法:

  • StringBuilder append(...):将任意数据添加到StringBuilder容器中
  • String toString():将当前StringBuilder容器转为字符串
public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("adc");
        sb.append("def");
        sb.append("ghi");
        System.out.println(sb);

        String s1 = sb.toString();
        System.out.println(s1);


        StringBuilder sb2 = new StringBuilder("odaojdsdoa");
        System.out.println(sb2);
    }

日期获取:Date和Calender

简介:

日期和日期类,用于操作日期相关信息

构造方法:

Date():构造一个日期对象,当前系统时间,精确到毫秒

Date(long):构造一个日期对象,时间为自“1970年1月1日 00:00:00GMT”起,至指定参数的毫秒数

成员方法:

  • long getTime():将日期对象转换成对应时间的毫秒值
  • static Calendar getInstance():根据当前系统时区和语言环境获取日历对象
  • int get(field):返回给定日历字段的值
  • void set(int field, int value):将给定的日历字段设置为指定的值
public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d);
        // 转为毫秒值
        long time = d.getTime();

        System.out.println(time);
        Date d2 = new Date(1614313146286L);
        System.out.println(d2);
    }

 

public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println(c);


        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");

        c.set(2022,1,1);
        int year2 = c.get(Calendar.YEAR);
        int month2 = c.get(Calendar.MONTH);
        int day2 = c.get(Calendar.DATE);
        System.out.println(year2 + "年" + (month2+1) + "月" + day2 + "日");

    }

基本类型的包装类

简介:

基本数据类型不是对象,所以Java针对基本类型提供了对应的包装类,以对象的形式来用

  • 装箱 :基本类型转包装类型(对象类型)
  • 拆箱:包装类型转基本类型
  • byte ---> Byte
  • short ---> Short
  • int ---> Integer
  • long ---> Long
  • char ---> Character
  • float ---> Float
  • double ---> Double
  • boolean ---> Boolean

成员方法:

  • static 基本类型 parseXxx(String):将字符串类型的数据转换成对应的基本类型
  • 除了Character类以外,其他的7中包装类都有parseXxx()方法
  • 字符串转char类型,直接toCharArray(),CharAt().

包装类的作用:将字符串类型的数据 转为对应的基本类型

public static void main(String[] args) {
        String a1 = "200";
        System.out.println(Integer.parseInt(a1));

        String a2 = "718791879.278787";
        System.out.println(Double.parseDouble(a2));
    }

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值