Java——常用工具API
Java——常用工具API
- API简介
- Object类
- Scanner类
- String类
- StringBuilder和StringBuffer类
- Date和Calendar类
- 基本类型的包装类
API简介
-
API
Application Programming Interface,应用程序编程接口,这里指的是API文档,通常叫“Java文档”,是Java中提供的类的使用说明书。 -
Java中组件的层次结构:
模块(module)——>包(package)->类或接口(class/interface)
Object类
-
Object类
类层次结构最顶层的基类,所有类都直接或间接的继承自Object类,所以,所有的类都是一个Object(对象)。

-
构造方法
Object(): 构造一个对象,所有子类对象初始化时都会优先调用该方法。 -
成员方法
(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);}
}

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

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

- 成员方法
(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类
-
字符串。每一个字符串对象都是常量。
-
构造方法
String(byte[]):构造一个String对象,将指定字节数组中的数据转化成字符串。{97,98,99}->
String(char[]):构造一个String对象,将指定字符数组中的数据转化成字符串。 -
成员方法
判断功能:
(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类
- 概念
可变字符序列,用于构造字符串对象。内部使用自动扩容的数组操作字符串数据。StringBuilder和StringBuffer使用相同的API,在实际中优先使用StringBuilder,因为它的实现速度更快。 - 构造方法
StringBuilder():构造一个空的StringBuilder容器
StringBuilder():构造一个StringBuilder容器,并添加指定字符串 - 成员方法
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类
- 介绍
日期和日历类,用于操作日期相关信息。 - 构造方法
Date():构造一个日期对象,当前系统时间,精确到毫秒
Date(long):构造一个日期对象,时间为自“1970年1月1日 00:00:00 GMT"起,至指定参数的毫秒数 - 成员方法
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日}
}
基本类型的包装类
- 简介
基本数据类型不是对象,所以java针对基本类型提供了对应的包装类,以对象的形式来使用。 - 装箱拆箱
装箱:基本类型转包装类型(对象类型)
拆箱:包装类型(对象类型)转基本类型 - 成员方法
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));}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
