详细参见jdk文档。
在程序中,java.lang包并不需要像其他包一样需要import关键字引入,系统会自动加载。
一、java.lang包装类
Java为8个基本类型都提供了包装类:
原始数据类型 | 包装类 |
---|---|
byte(字节) | Byte |
char(字符) | Character |
int(整型) | Integer |
long (长整型) | Long |
float(浮点型) | Float |
double (双精度) | Double |
boolean (布尔) | Boolean |
short(短整型) | Short |
其中,除了Integer和Character类之外,其他类的类名和基本数据类型一致,只是类名的第一个字母大写。
java.lang包中的Integer类、Long类和Short类都是Number类的子类。区别在于不同子类中封装着不同的数据类型。
1.Integer类
以Integer类为例。Integer构造方法有两种:
1.Integer(int value),以int型变量为参数创建Integer对象。
eg: Integer a = new Integer(10);
2.Integer(String s) ,以 String 型变量作为参数创建 Integer 对象.
eg: Integer a = new Integer(“10”)
Integer的常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
compareTo(Integer anotherInteger) | int | 在数字上比较 Integer 对象。如果这两个值相等,则返回 0;如果调用对象的数值小于 anotherInteger 的数值,则返回负值;如果调用对象的数值大于 anotherInteger 的数值,则返回正值 |
equals(Object IntegerObj) | boolean | 比较此对象与指定对象是否相等 |
byteValue() | byte | 以 byte 类型返回该 Integer 的值 |
intValue() | int | 以 int 型返回此 Integer 对象 |
shortValue() | short | 以 short 型返回此 Integer 对象 |
longValue() | long | 以 long 型返回此 Integer 对象 |
floatValue() | float | 以 float 型返回此 Integer 对象 |
doubleValue() | double | 以 double 型返回此 Integer 对象 |
toString() | String | 返回一个表示该 Integer 值的 String 对象 |
valueOf(String str) | Integer | 返回保存指定的 String 值的 Integer 对象 |
parseInt(String str) | int | 将字符串参数作为有符号的十进制整数进行解析 |
其实,JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。使用示例代码如下:
//int类型会自动转换为Integer类型
int m = 12;
Integer in = m;
//Integer类型会自动转换为int类型
int n = in;
所以在实际使用时的类型转换将变得很简单,系统将自动实现对应的转换。
2.Character类
Charater包装类的常用方法:
方法 | 返回值 | 说明 |
---|---|---|
isDigit(char ch) | boolean | 确定字符是否为数字 |
isLetter(char ch) | boolean | 确定字符是否为字母 |
isLowerCase(char ch) | boolean | 确定字符是否为小写字母 |
isUpperCase(char ch) | boolean | 确定字符是否为大写字母 |
isWhitespace(char ch) | boolean | 确定字符是否为空白字符 |
isUnicodeIdentifierStart(char ch) | boolean | 确定是否允许将指定字符作为 Unicode 标识符中的首字符 |
3.Boolean类
Boolean类的构造方法也有两个:
Boolean(boolean value),创建一个表示 value 参数的 Boolean 对象,如Boolean b = new Boolean(true)
Boolean(String s),如果 String 参数不为 null 且在忽略大小写时等于 “true”,创建一个表示 true 值的 Boolean 对象,如Boolean b = new Boolean(“ok”),为 false。
Boolean包装类的常用方法:
方法 | 返回值 | 说明 |
---|---|---|
booleanValue() | boolean | 将 Boolean 对象的值以对应的 boolean 值返回 |
equals(Object obj) | boolean | 判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,而且与调用该方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true |
parseBoolean(String s) | boolean | 将字符串参数解析为 boolean 值 |
toString() | String | 返回表示该 boolean 值的 String 对象 |
valueOf(String s) | Boolean | 返回一个用指定得字符串表示值的 boolean 值 |
二、java.lang类String
使用String类来定义一个字符串。字符串是常量,它们的值在创建之后不能更改。
字符串缓冲区支持可变的字符串。
String对象的初始化格式有2种:
String s0 = "abc";
String s1 = new String("abd");
String类具有丰富的方法,比如计算字符串的长度、连接字符串、比较字符串、提取字符串等等。
1.计算字符串长度
public int length(){} //方法原型
调用方法:字符串标识符.length(); 返回一个int类型的整数(字符串中字符数,中文字符也是一个字符)。
2.字符串比较
equals()方法,作用:判断两个字符串对象的内容是否相同。相同返回true,否则返回false。
equals() 方法比较是从第一字符开始,一个字符一个字符依次比较。
通过调用equalsIgnoreCase()方法,可以忽略掉大小写关系进行比较。
而使用"=="比较的是两个对象在内存中存储的地址是否一样。
eg:String s1=“abc”;String s2 = new String(“abc”);boolean b=(s1==s2);则变量b的值是false,因为s1对象对应的地址是“abc”的地址,而s2使用new关键字申请新的内存,所以内存地址和s1的“abc”的地址不一样,故获的值为false。
3.字符串连接
字符串连接有两种方法:
1)使用 + ,比如String s = "Hello " + “world!”
2)使用String类的concat()方法
eg:
String s0 = new String("Hello");
String s1 = "World" + "!"; //+号连接
String s2 = s0.concat(s1); //concat()方法连接
System.out.println(s2);
注意:使用+进行连接时,不仅可以连接字符串,也可以连接其他类型,但至少有一个参与连接的内容是字符串类型。
4.charAt()方法
作用:按照索引值(规定字符串中第一个字符的索引值是0,第二个字符的索引值是1,依次类推),获得字符串中的指定字符。
eg: String s = “abc”; char c = s.charAt(1);
则变量c的值是’b’。
5.字符串常用提取方法
方法 | 返回值 | 功能描述 |
---|---|---|
indexOf(int ch) | int | 搜索字符 ch 第一次出现的索引 |
indexOf(String value) | int | 搜索字符串 value 第一次出现的索引 |
lastIndexOf(int ch) | int | 搜索字符 ch 最后一次出现的索引 |
lastIndexOf(String value) | int | 搜索字符串 value 最后一次出现的索引 |
substring(int index) | String | 提取从位置索引开始到结束的字符串 |
substring(int beginindex, int endindex) | String | 提取 beginindex 和 endindex 之间的字符串部分 |
trim() | String | 返回一个前后不含任何空格的调用字符串的副本 |
注意:在字符串中,第一个字符的索引为0,子字符串包含beginindex的字符,但不包含endindex的字符。
6.StringBuffer
String的不变性的机制显然回在String常量内有大量的冗余。如,创建一个循环,使字符‘1’依次连接到‘n’,系统就得创建 n+(n-1)个String对象。
StringBuffer类是可变的。它是String的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾。
StringBuffer的构造方法:
构造方法 | 说明 |
---|---|
StringBuffer() | 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符 |
StringBuffer(CharSequence seq) | 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符 |
StringBuffer(int capacity) | 构造一个不带字符,但具有指定初始容量的字符串缓冲区 |
StringBuffer(String str) | 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容 |
StringBuffer的常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
insert(int offsetm,Object s) | StringBuffer | 在 offsetm 的位置插入字符串 s |
append(Object s) | StringBuffer | 在字符串末尾追加字符串 s |
length() | int | 确定 StringBuffer 对象的长度 |
setCharAt(int pos,char ch) | void | 使用 ch 指定的新值设置 pos 指定的位置上的字符 |
toString() | String | 转换为字符串形式 |
reverse() | StringBuffer | 反转字符串 |
delete(int start, int end) | StringBuffer | 删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列 |
replace(int start, int end, String s) | StringBuffer | 使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束 |
补充:
1.getBytes方法
作用:将字符串转换为对应的byte数组,从而便于数据的存储和传输。
eg: String s= “计算机”;
byte[] b = s.getBytes(); //使用本机默认的字符串转换为byte数组
byte[] b = s.getBytes(“gb2312”); //使用gb2312字符集转换成byte数组
在实际转换时,一定要注意字符集的问题,否则中文在转换时将会出现问题。
2.toCharArray方法
和getBytes方法类似,即将字符串转换为对应的char数组。
3.split方法
作用:以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后得到一个字符串数组。
eg: String s = “ab,12,df”;
String s1[] = s.split(",");
得到s1内容为{“ab”,“12”,“df”}。
该方法是解析字符串的基础方法。
参考自实验楼。