Java——常用工具API

Java——常用工具API

  • API简介
  • Object类
  • Scanner类
  • String类
  • StringBuilder和StringBuffer类
  • Date和Calendar类
  • 基本类型的包装类

API简介

  1. API
    Application Programming Interface,应用程序编程接口,这里指的是API文档,通常叫“Java文档”,是Java中提供的类的使用说明书。

  2. Java中组件的层次结构:
    模块(module)——>包(package)->类或接口(class/interface)

Object类

  1. Object类
    类层次结构最顶层的基类,所有类都直接或间接的继承自Object类,所以,所有的类都是一个Object(对象)。
    在这里插入图片描述

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

  3. 成员方法
    (1)int hashCode():返回对象的哈希码值,该方法通过对象的地址值进行计算,不同对象的返回值一般不同。
    (2)Class getClass():返回调用此方法对象的运行时类对象(调用者的字节码文件对象)
    (3)String to String():返回该对象的字符串表示
    (4)boolean equals():返回其它某个对象是否与此对象“相等”。默认情况下比较两个对象的引用(比较的是地址值),建议重写。

package com.API;public class test01 {public static void main(String[] args) {//1. 创建Object类型的对象Object obj1 = new Object();Object obj2 = new Object();//2. 测试Object类中的成员方法//hashCode() 返回对象的哈希码值,不同对象的哈希码值一般不同int code1 = obj1.hashCode();System.out.println(code1);//Class getClass():返回该调用者的字节码文件对象,一个类只有一个字节码文件对象Class clazz1 = obj1.getClass();System.out.println(clazz1);//String toString():返回该对象的字符串表示形式,默认打印的是地址值,但是不同对象的地址值肯定不同//地址值的组成:全类名+@+该对象的哈希码的无符号十六进制形式String s1 = obj1.toString();System.out.println(s1);//boolean equals(): 比较两个对象是否相等,默认比较的是地址值,无意义boolean b1 = obj1.equals(obj2);System.out.println(b1);}
}

在这里插入图片描述

  1. JavaBean重写Object类的方法 control+enter 重写方法
    需求:开发中通常需要将对象转成字符串形式进行传输,也需要对即将使用的对象进行相等判断。定义标准JavaBean类,重写toString和euqals方法。
    在这里插入图片描述

Scanner类

  1. 简介
    扫描器。能够解析字符串(String)和基本数据类型的数据。
  2. 构造方法
    Scannner():构造一个扫描器对象,从指定输入流中获取数据参数System.in,对应键盘录入。

在这里插入图片描述

  1. 成员方法
    (1)hasNextXxx():判断是否还有下一个输入项,其中Xxx(hasNextInt、hasNextDouble)可能是任意基本数据类型,返回结果为布尔值
    (2)nextXxx():获取下一个输入项,其中Xxx可能是任意基本数据类型,返回对应类型的数据。
    (3)String nextLine():获取下一行数据,以换行符作为分隔符。
    (4)String next():获取下一个输入项,以空白字符作为分隔符空白字符:空格、tab、回车等
package com.API;import java.util.Scanner;public class test03 {public static void main(String[] args) {//1. 创建Scanner类型的对象Scanner sc = new Scanner(System.in);//2. 接收整数System.out.println("请输入一个整数:");if (sc.hasNextInt()) {  //判断下一个录入的是否是整数int sum = sc.nextInt();System.out.println("sum:" + sum);}//3. 接收字符串类型的数据System.out.println("请输入一个字符串:");String str1 = sc.nextLine();  //结束标记是换行符System.out.println("str1:" + str1);String str2 = sc.next();  //结束标记是空白字符(空格,tab,换行符)System.out.println("str2:" + str2);}
}

注意:在实际开发中,应用到的最多的方法是:
(1)nextInt():接收整数
(2)nextLine():接收字符串

String类

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

  2. 构造方法
    String(byte[]):构造一个String对象,将指定字节数组中的数据转化成字符串。{97,98,99}->
    String(char[]):构造一个String对象,将指定字符数组中的数据转化成字符串。

  3. 成员方法
    判断功能:
    (1)boolean equals(String):判断当前字符串与给定字符串是否相同,区分大小写
    (2)boolean equalsIgnoreCase(String):判断当前字符串与给定字符串是否相同,不区分大小写
    (3)boolean startWith(String):判断是否以给定字符串开头
    在这里插入图片描述

package com.API;public class test04 {public static void main(String[] args) {//测试 构造方法//1.将指定的字节数组转成字符串byte[] bys = {97, 98, 99};String s1 = new String(bys);System.out.println("s1:" + s1);  // s1:abc//2. 将指定的字符数组转成字符串char[] chs = {'h', 'e', 'l', 'l', 'o'};String s2 = new String(chs);System.out.println("s2:" + s2);   //s2:hello//在实际开发中,String类非常非常常用,每次new很麻烦,于是针对String的语法做了优化,省去了new的动作String s3 = "abc";  //不用newString s4 = new String("abc");//测试成员方法String str1 = "abc";String str2 = "ABC";//1. boolean equals(String)  判断字符串是否相同,区分大小写boolean b1 = str1.equals(str2);System.out.println("equals():" + b1); //equals:false//2. boolean equalIgnoreCase(String) 不区分大小写判断字符串是否相同boolean b2 = str1.equalsIgnoreCase(str2);System.out.println("equalIgnoreCase():" + b2);  //equalIgnoreCase:true//3. boolean startsWith("a")boolean b3 = str1.startsWith("a");System.out.println("startWith():" + b3);  //startWith:true//4. boolean isEmpty()String str3 = "";boolean b4 = str3.isEmpty();System.out.println("isEmpty():" + b4);  //isEmpty():true}
}

获取功能:
(1)int length():获取当前字符串的长度
(2)char charAt(int index):获取指定索引位置的字符
(3)int indexOf(String):获取指定字符(串)第一次出现的索引
(4)int lastIndexOf(String):获取指定字符(串)最后一次出现的索引
(5)String substring(int):获取指定索引位置(含)之后的字符串
(6)String substring(int, int):获取从索引start位置(含)起至索引end位置(不含)的字符串
在这里插入图片描述

package com.API;public class test05 {public static void main(String[] args) {String str = "rain hello rain";//1. int length() 获取字符串长度int length = str.length();System.out.println(length); //15//2. char charAt(int index)  获取指定索引位置的字符char ch = str.charAt(7);System.out.println(ch);    // l//3. int indexOf(String) 获取指定字符(串)第一次出现的索引int index1 = str.indexOf("a");System.out.println("index1:" + index1);  //index1:1//4. int lastIndexOf(String) 获取指定字符(串)最后一次出现的索引int index2 = str.lastIndexOf("a");System.out.println("index2:" + index2); //index2:12//5. int substring(int) 获取指定索引位置(含)之后的字符串String s1 = str.substring(5);System.out.println(s1);  //hello rain//6. String substring(int, int):获取从索引start位置(含)起至索引end位置(不含)的字符串String s2 = str.substring(5, 10);System.out.println(s2);  //hello}
}

转换功能:
(1)byte[] getBytes():将字符串转换成字节数组
(2)char[] toCharArray():将字符串转换成字符数组
(3)static String valueOf(…):将指定类型数据转换成字符串
(4)String replace(old, new):将指定字符(串)换成新的字符(串)
(5)String[] split(String):切割字符串,返回切割后的字符串数据,原字符串不变
(6)String trim():去掉字符串两端的空白字符
在这里插入图片描述

package com.API;import java.nio.charset.StandardCharsets;public class test06 {public static void main(String[] args) {String s1 = "abc";//1. byte[] getBytes():将字符串转换成字节数组byte[] bys = s1.getBytes();for (int i = 0; i < bys.length; i++) {System.out.println(bys[i]);   //97 98 99}//2. char[] toCharArray():将字符串转换成字符数组char[] chs = s1.toCharArray();for (int i = 0; i < chs.length; i++) {System.out.println(chs[i]);   //a b c}//3. static String valueOf(…):将指定类型数据转换成字符串String s2 = String.valueOf(123);System.out.println(s2 + 4);  //1234//实际开发中,常用代码String s3 = "" + 123;System.out.println(s3 + 4);   //1234//4. String replace(old, new):将指定字符(串)换成新的字符(串)String s4 = "abc abc abc";String s5 = s4.replace("b", "d");System.out.println(s5);   //adc adc adc//5. String[] split(String):切割字符串,返回切割后的字符串数据,原字符串不变String[] arr = s4.split(" ");for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}//6. String trim():去掉字符串两端的空白字符String s6 = s5.trim();System.out.println(s6);}
}

StringBuilder和StringBuffer类

  1. 概念
    可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。StringBuilder和StringBuffer使用相同的API,在实际中优先使用StringBuilder,因为它的实现速度更快。
  2. 构造方法
    StringBuilder():构造一个空的StringBuilder容器
    StringBuilder():构造一个StringBuilder容器,并添加指定字符串
  3. 成员方法
    StringBuilder append(…):将任意数据添加到STringBuilder容器中,返回自身
    String toString():将当前StringBuilder容器转成字符串
package com.API;public class test07 {public static void main(String[] args) {//测试StringBuilder//测试空参构造 StringBuilder()StringBuilder sb = new StringBuilder();  //option + enter 自动填充StringBuilder sb2 = sb.append("abc");  //将数据添加到容器中,返回自身System.out.println("sb: " + sb);     //sb: abcSystem.out.println("sb2: " + sb2);   //sb2: abc//将String类型的"abc"转成 StringBuilder类型的对象StringBuilder sb3 = new StringBuilder("abc");System.out.println("sb3: " + sb3);   //sb3: abc//测试成员方法 append()StringBuilder sb4 = new StringBuilder();sb4.append("rain ");sb4.append("hello ");sb4.append("rain");System.out.println("sb4: " + sb4);  //sb4: rain hello rainString s = sb4.toString();   //将StringBuilder容器转换成字符串System.out.println("字符串s: " + sb4);   //字符串s: rain hello rain}
}

Date和Calendar类

  1. 介绍
    日期和日历类,用于操作日期相关信息。
  2. 构造方法
    Date():构造一个日期对象,当前系统时间,精确到毫秒
    Date(long):构造一个日期对象,时间为自“1970年1月1日 00:00:00 GMT"起,至指定参数的毫秒数
  3. 成员方法
    long getTime():将日期对象转成对应时间的毫秒值
    static Calendar getInstance():根据当前系统时区和语言环境获取日历对象
    int get(int field):返回给定日历字段的值
    void set(int field, int value):将给定的日历字段设置为指定的值

Date类:

package com.API;import java.util.Date;public class test08 {public static void main(String[] args) {//测试Date类//测试空参构造,采用当前操作系统的默认时间Date date1 = new Date();  //构造一个日期对象,当前系统时间System.out.println("date: " + date1);   //date: Tue Nov 30 14:27:00 CST 2021//获取当前操作系统时间的毫秒值long time = date1.getTime();  //用long类型接收System.out.println("date1: " + time); //date1: 1638253620688//创建一个指定的时间Date date2 = new Date(1638253395667L); //日期对象,毫秒转换为日期System.out.println("date2: " + date2);  //date2: Tue Nov 30 14:23:15 CST 2021}
}

Calendar类:

package com.API;import java.util.Calendar;public class test09 {public static void main(String[] args) {//创建Calendar类型的对象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+1) + "月" + day + "日");  //2021年11月30日//设置指定时间为2022年11月30日c.set(Calendar.YEAR, 2022);int year2 = c.get(Calendar.YEAR);  //需要重新获取System.out.println(year2 + "年" + (month+1) + "月" + day + "日");  //2022年11月30日c.set(2022, 1, 2);int year3 = c.get(Calendar.YEAR);int month3 = c.get(Calendar.MONTH);int day3 = c.get(Calendar.DATE);System.out.println(year3 + "年" + (month3+1) + "月" + day3 + "日"); //2022年2月2日}
}

基本类型的包装类

  1. 简介
    基本数据类型不是对象,所以java针对基本类型提供了对应的包装类,以对象的形式来使用。
  2. 装箱拆箱
    装箱:基本类型转包装类型(对象类型)
    拆箱:包装类型(对象类型)转基本类型
  3. 成员方法
    static 基本类型 parseXxx(String):将字符串类型的数据转换成对应的基本类型
package com.API;public class test10 {public static void main(String[] args) {int a = 10; //变量a属于基本类型,不能通过 对象名.  的形式调用方法//所以可以将其转换成对于的 包装类(引用类型)//装箱Integer i1 = new Integer(20);//拆箱int b = i1.intValue();System.out.println(i1);   //20System.out.println(b);    //20//JDK5的新特性,自动拆装箱Integer i2 = 30;  //装箱int c = i2;       //拆箱//parseXxx:将字符串类型的数据转换成对于的基本类型//static int parseInt(String) 将字符串类型的整数转换成对应的int类型的整数//除Character类以外,其他的七种包装类都有parseXXX()方法。字符串想转换成char类型的数据,可以通过String类中的方法. toCharArray() ,charAt()//将字符串类型的"10",转换成int类型的10String s = "10";int num = Integer.parseInt(s);System.out.println("num+10: " + (num+10));}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部