Java 的API
Java 的API(API: Application(应用) Programming(程序) Interface(接口))
Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件。可以在其中查看相对应的类的源码。
Object类
Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。
Modifier and Type | Method and Description |
---|---|
protected Object |
clone()
创建并返回此对象的副本。
|
boolean |
equals(Object obj)
指示一些其他对象是否等于此。
|
protected void |
finalize()
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。
|
类> |
getClass()
返回此
Object 的运行时类。
|
int |
hashCode()
返回对象的哈希码值。
|
void |
notify()
唤醒正在等待对象监视器的单个线程。
|
void |
notifyAll()
唤醒正在等待对象监视器的所有线程。
|
String |
toString()
返回对象的字符串表示形式。
|
void |
wait()
导致当前线程等待,直到另一个线程调用该对象的
notify() 方法或
notifyAll() 方法。
|
void |
wait(long timeout)
导致当前线程等待,直到另一个线程调用
notify() 方法或该对象的
notifyAll() 方法,或者指定的时间已过。
|
void |
wait(long timeout, int nanos)
导致当前线程等待,直到另一个线程调用该对象的
notify() 方法或
notifyAll() 方法,或者某些其他线程中断当前线程,或一定量的实时时间。
|
equals()方法
equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。
在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。
/*
描述人这个类,并定义功能根据年龄判断是否是同龄人
由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法
在方法体中根据类的属性值进行比较
*/
class Person extends Object{
int age ;
//复写父类的equals方法,实现自己的比较方式
public boolean equals(Object obj) {
//判断当前调用equals方法的对象和传递进来的对象是否是同一个
if(this == obj){
return true;
}
//判断传递进来的对象是否是Person类型
if(!(obj instanceof Person)){
return false;
}
//将obj向下转型为Perosn引用,访问其属性
Person p = (Person)obj;
return this.age == p.age;
}
}
注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。
toString()方法 Object类
toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
class Person extends Object{
int age ;
//根据Person类的属性重写toString方法
public String toString() {
return "Person [age=" + age + "]";
}
}
String类
查阅API中的String类的描述,发现String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
Modifier and Type | Method and Description |
---|---|
char |
charAt(int index)
返回
char 指定索引处的值。
|
int |
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。
|
int |
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。
|
int |
codePointCount(int beginIndex, int endIndex)
返回此
String 指定文本范围内的Unicode代码点数。
|
int |
compareTo(String anotherString)
按字典顺序比较两个字符串。
|
int |
compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略病例差异。
|
String |
concat(String str)
将指定的字符串连接到该字符串的末尾。
|
boolean |
contains(CharSequence s)
当且仅当此字符串包含指定的char值序列时才返回true。
|
boolean |
contentEquals(CharSequence cs)
将此字符串与指定的CharSequence进行
CharSequence 。
|
boolean |
contentEquals(StringBuffer sb)
将此字符串与指定的StringBuffer进行
StringBuffer 。
|
static String |
copyValueOf(char[] data)
相当于
valueOf(char[]) 。
|
static String |
copyValueOf(char[] data, int offset, int count)
相当于
valueOf(char[], int, int) 。
|
boolean |
endsWith(String suffix)
测试此字符串是否以指定的后缀结尾。
|
boolean |
equals(Object anObject)
将此字符串与指定对象进行比较。
|
boolean |
equalsIgnoreCase(String anotherString)
将此
String 与其他
String 比较,忽略案例注意事项。
|
static String |
format(Locale l, String format, Object... args)
使用指定的区域设置,格式字符串和参数返回格式化的字符串。
|
static String |
format(String format, Object... args)
使用指定的格式字符串和参数返回格式化的字符串。
|
byte[] |
getBytes()
使用平台的默认字符集将此
String 编码为字节序列,将结果存储到新的字节数组中。
|
byte[] |
getBytes(Charset charset)
使用给定的charset将该 String 编码为字节序列,将结果存储到新的字节数组中。
|
void |
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
已弃用
此方法无法将字符正确转换为字节。
从JDK 1.1开始,首选的方法是通过
getBytes() 方法,该方法使用平台的默认字符集。
|
byte[] |
getBytes(String charsetName)
使用命名的字符集将此
String 编码为字节序列,将结果存储到新的字节数组中。
|
void |
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将此字符串中的字符复制到目标字符数组中。
|
int |
hashCode()
返回此字符串的哈希码。
|
int |
indexOf(int ch)
返回指定字符第一次出现的字符串内的索引。
|
int |
indexOf(int ch, int fromIndex)
返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。
|
int |
indexOf(String str)
返回指定子字符串第一次出现的字符串内的索引。
|
int |
indexOf(String str, int fromIndex)
返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
|
String |
intern()
返回字符串对象的规范表示。
|
boolean |
isEmpty()
返回
true 如果,且仅当
length() 为
0 。
|
static String |
join(CharSequence delimiter, CharSequence... elements)
返回一个新的字符串,由
CharSequence elements 的副本组成,并附有指定的delimiter的
delimiter 。
|
static String |
join(CharSequence delimiter, Iterable extends CharSequence> elements)
返回一个新
String 的副本组成
CharSequence elements 与指定的副本一起加入
delimiter 。
|
int |
lastIndexOf(int ch)
返回指定字符的最后一次出现的字符串中的索引。
|
int |
lastIndexOf(int ch, int fromIndex)
返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索。
|
int |
lastIndexOf(String str)
返回指定子字符串最后一次出现的字符串中的索引。
|
int |
lastIndexOf(String str, int fromIndex)
返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。
|
int |
length()
返回此字符串的长度。
|
boolean |
matches(String regex)
告诉这个字符串是否匹配给定的
regular expression 。
|
int |
offsetByCodePoints(int index, int codePointOffset)
返回此
String 内的指数,与
index
codePointOffset 代码点。
|
boolean |
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
|
boolean |
regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
|
String |
replace(char oldChar, char newChar)
返回从替换所有出现的导致一个字符串
oldChar 在此字符串
newChar 。
|
String |
replace(CharSequence target, CharSequence replacement)
将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。
|
String |
replaceAll(String regex, String replacement)
用给定的替换替换与给定的
regular expression匹配的此字符串的每个子字符串。
|
String |
replaceFirst(String regex, String replacement)
用给定的替换替换与给定的
regular expression匹配的此字符串的第一个子字符串。
|
String[] |
split(String regex)
将此字符串分割为给定的
regular expression的匹配。
|
String[] |
split(String regex, int limit)
将这个字符串拆分为给定的
regular expression的匹配。
|
boolean |
startsWith(String prefix)
测试此字符串是否以指定的前缀开头。
|
boolean |
startsWith(String prefix, int toffset)
测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。
|
CharSequence |
subSequence(int beginIndex, int endIndex)
返回一个字符序列,该序列是该序列的子序列。
|
String |
substring(int beginIndex)
返回一个字符串,该字符串是此字符串的子字符串。
|
String |
substring(int beginIndex, int endIndex)
返回一个字符串,该字符串是此字符串的子字符串。
|
char[] |
toCharArray()
将此字符串转换为新的字符数组。
|
String |
toLowerCase()
将所有在此字符
String 使用默认语言环境的规则,以小写。
|
String |
toLowerCase(Locale locale)
将所有在此字符
String ,以降低使用给定的规则情况下
Locale 。
|
String |
toString()
此对象(已经是字符串!)本身已被返回。
|
String |
toUpperCase()
将所有在此字符
String 使用默认语言环境的规则大写。
|
String |
toUpperCase(Locale locale)
将所有在此字符
String 使用给定的规则,大写
Locale 。
|
String |
trim()
返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
|
static String |
valueOf(boolean b)
返回
boolean 参数的字符串
boolean 形式。
|
static String |
valueOf(char c)
返回
char 参数的字符串
char 形式。
|
static String |
valueOf(char[] data)
返回
char 数组参数的字符串
char 形式。
|
static String |
valueOf(char[] data, int offset, int count)
返回
char 数组参数的特定子阵列的字符串
char 形式。
|
static String |
valueOf(double d)
返回
double 参数的字符串
double 形式。
|
static String |
valueOf(float f)
返回
float 参数的字符串
float 形式。
|
static String |
valueOf(int i)
返回
int 参数的字符串
int 形式。
|
static String |
valueOf(long l)
返回
long 参数的字符串
long 形式。
|
static String |
valueOf(Object obj)
返回
Object 参数的字符串
Object 形式。
|
String类构造方法
Constructor and Description |
---|
String()
初始化新创建的
String 对象,使其表示空字符序列。
|
String(byte[] bytes)
通过使用平台的默认字符集解码指定的字节数组来构造新的
String 。
|
String(byte[] bytes, Charset charset)
构造一个新的 String 由指定用指定的字节的数组解码charset 。
|
String(byte[] ascii, int hibyte)
已弃用
此方法无法将字节正确转换为字符。
从JDK 1.1开始,首选的方法是通过
String 构造函数获取Charset ,字符集名称,或者使用平台的默认字符集。
|
String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的字节子阵列来构造新的
String 。
|
String(byte[] bytes, int offset, int length, Charset charset)
构造一个新的 String 通过使用指定的指定字节子阵列解码charset 。
|
String(byte[] ascii, int hibyte, int offset, int count)
已弃用
此方法无法将字节正确转换为字符。
从JDK 1.1开始,首选的方式是通过
String 构造函数获取Charset ,字符集名称,或使用平台的默认字符集。
|
String(byte[] bytes, int offset, int length, String charsetName)
构造一个新的
String 通过使用指定的字符集解码指定的字节子阵列。
|
String(byte[] bytes, String charsetName)
构造一个新的 String 由指定用指定的字节的数组解码charset 。
|
String(char[] value)
分配一个新的
String ,以便它表示当前包含在字符数组参数中的字符序列。
|
String(char[] value, int offset, int count)
分配一个新的
String ,其中包含字符数组参数的子阵列中的字符。
|
String(int[] codePoints, int offset, int count)
分配一个新的
String ,其中包含
Unicode code point数组参数的子阵列中的
字符 。
|
String(String original)
初始化新创建的 String 对象,使其表示与参数相同的字符序列;
换句话说,新创建的字符串是参数字符串的副本。
|
String(StringBuffer buffer)
分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。
|
String(StringBuilder builder)
分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。
|
String s1 = new String(); //创建String对象,字符串中没有内容
byte[] bys = new byte[]{97,98,99,100};
String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容
String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素
char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’};
String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容
String s5 = new String(chs, 0, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素
String s6 = new String(“abc”); //创建String对象,字符串内容为abc
length()方法
直接返回字符串的长度
String str = "abcde";
int len = str.length();
System.out.println("len="+len);
substring()方法
返回一个新字符串,可指定长度
String str = "abcde";
String s1 = str.substring(1); //返回一个新字符串,内容为指定位置开始到字符串末尾的所有字符
String s2 = str.substring(2, 4); //返回一个新字符串,内容为指定位置开始到指定位置结束所有字符
System.out.println("str="+str);
System.out.println("s1="+s1);
System.out.println("s2="+s2);
startsWith()和endsWith()方法
字符串是否以指定字符串开头。结尾同理。
String str = "StringDemo.java";
boolean b1 = str.startsWith("Demo"); //判断是否以给定字符串开头
boolean b2 = str.startsWith("String");
boolean b3 = str.endsWith("java"); //判断是否以给定字符串结尾
contains()方法
当且仅当此字符串包含指定的char值序列时才返回true
String str = "abcde";
boolean b2 = str.contains("bcd"); //判断是否包含指定字符串,包含返回true,不包含返回false
indexOf()方法
返回指定字符第一次出现的字符串内的索引
String str = "abcde";
int index = str.indexOf(“bcd”); //判断是否包含指定字符串,包含则返回第一次出现该字符串的索引,不包含则返回-1
toCharArray()方法和getBytes()方法
将字符串转成一个字符数组。或者字节数组。
String str = "abcde";
char[] chs = str.toCharArray();
byte[] bytes = str.getBytes();
equals()方法和equalsIgnoreCase()方法
判断两个字符串中的内容是否相同 第二个不考虑大小写
String str = "abcde";
String str2 = "abcde";
String str3 = "hello";
boolean b1 = str.equals(str2);
boolean b2 = str.equalsIgnoreCase(str3);
toString()方法 String类
获取该字符串对象中的内容
String str = new String("hello");
System.out.println( str.toString() );
System.out.pintln( str );
matches()方法
判断字符串是否匹配给定的正则表达式
举例:校验qq号码.
1: 要求必须是5-15位数字
2: 0不能开头
代码演示:
String qq = "604154942";
String regex = "[1-9][0-9]{4,14}";
boolean flag2 = qq.matches(regex);
split()方法
根据给定正则表达式的匹配规则,拆分此字符串
举例:分割出字符串中的的数字
代码演示:
String s = "18-22-40-65";
String regex = "-";
String[] result = s.split(regex);
代码演示:
String s = "18 22 40 65";
String regex = " ";
String[] result = s.split(regex);
replaceAll()方法
将符合规则的字符串内容,全部替换为新字符串
举例:把文字中的数字替换成*
代码演示:
String s = "Hello12345World6789012";
String regex = "[0-9]";
String result = s.replaceAll(regex, "*");
0 条评论