Java常用工具类
Posted zyx110
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常用工具类相关的知识,希望对你有一定的参考价值。
Java常用工具类
一、Object类
java.lang.Object
Object类是所有类直接或间接的父类
常用的方法:
toString():以字符串形式返回对象的文本信息;
hashCode():返回该对象的哈希值;
getClass():返回对象的类类型;
equals(Object obj):比较两个对象是否相等
package Practice_Anything; public class String_demo { public static void main(String[] args) { String s = new String("你好"); String s1 = new String("世界"); Class<?> c = s.getClass();//返回对象的类类型 System.out.println(c); boolean flag = s.equals(s1);//比较两个对象是否相等 System.out.println(flag); int hash = s.hashCode();//返回该对象的哈希值 int hash1 = s1.hashCode(); System.out.println(hash+" "+hash1); String s2 = s.toString();//以字符串形式返回对象的文本信息 String s3 = s1.toString(); System.out.println(s2+s3); } }
运行结果: class java.lang.String false 652829 649718 你好世界
二、包装类
装箱与拆箱
以Byte为例
java.lang.Byte
public final class Byte extend Number
Byte
类将基本类型 byte
的值包装在一个对象中。一个 Byte
类型的对象只包含一个类型为 byte
的字段。
package Practice_Anything; public class Box_Demo { public static void main(String[] args) { byte b =1;//基本数据类型 System.out.println(b); Byte b1 = new Byte(b);//包装类的对象 System.out.println(b1); Byte b2 = b;//自动装箱,把基本数据类型转为对象 System.out.println(b2); byte b3 = new Byte(b);//自动拆箱,把对象转为基本数据类型 System.out.println(b3); } }
运行结果: 1 1 1 1
三、Number类
java.lang.Number
public abstract class Number extends Object implements Serializable
抽象类 Number
是 BigDecimal
、BigInteger
、Byte
、Double
、Float
、Integer
、Long
和 Short
类的超类。
Number
的子类必须提供将表示的数值转换为 byte
、double
、float
、int
、long
和 short
的方法。
以Integer为例
java.lang.Integer
public final class Integer extends Number
Integer
类在对象中包装了一个基本类型 int
的值。Integer
类型的对象包含一个 int
类型的字段。
此外,该类提供了多个方法,能在 int
类型和 String
类型之间互相转换,还提供了处理 int
类型时非常有用的其他一些常量和方法。
常用的方法:
- 构造方法;
- compareTo():在数字上比较两个
Integer
对象。 - valueOf():返回一个表示指定的 int 值的 Integer 实例。
- toString():返回一个表示该
Integer
值的String
对象。
package Practice_Anything; public class Integer_Demo { public static void main(String[] args) { Integer i = new Integer(2);//构造一个新分配的 Integer 对象,它表示指定的 int 值。 System.out.println(i); Integer i2 = new Integer("3");//构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。 System.out.println(i2); //如果该 Integer 等于 Integer 参数,则返回 0 值;如果该 Integer 在数字上小于 Integer 参数,则返回小于 0 的值; //如果 Integer 在数字上大于 Integer 参数,则返回大于 0 的值(有符号的比较)。 int i3 = i.compareTo(i2); System.out.println(i3); String s = "5"; Integer i4 = Integer.decode(s);//将 String 解码为 Integer。 System.out.println(i4); Integer i5 = Integer.valueOf(6);//返回一个表示指定的 int 值的 Integer 实例。 System.out.println(i5); Integer i6 = Integer.valueOf(s);//返回保存指定的 String 的值的 Integer 对象。 System.out.println(i6); String s1 = i.toString();//返回一个表示该 Integer 值的 String 对象。 System.out.println(s1); String s2 =Integer.toString(i);//返回一个表示指定整数的 String 对象。 System.out.println(s2); } }
运行结果: 2 3 -1 5 6 5 2 2
四、Character类
java.lang.Character
public final class Character extends Object
Character
类在对象中包装一个基本类型 char
的值。Character
类型的对象包含类型为 char
的单个字段。
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
常用的方法:
valueOf():返回一个表示指定 char 值的 Character 实例
toString():返回表示此 Character
值的 String
对象。
isDigit():判断是否为数字
isLetter():判断是否为字母
isUpperCase():判断是否为大写字母
isLowerCase():判断是否为小写字母
isWhitespace():判断是否为空格
toUpperCase():转为大写字母
toLowerCase():转为小写字母
package Practice_Anything; public class Character_Demo { public static void main(String[] args) { Character c = new Character(‘d‘);//构造方法 System.out.println(c); char c1 = c.charValue();//返回此 Character 对象的值。 System.out.println(c); char c2 = Character.valueOf(c);//返回一个表示指定 char 值的 Character 实例 System.out.println(c); String s = c.toString();//返回表示此 Character 值的 String 对象。 System.out.println(s); boolean b = Character.isDigit(c);//判断指定字符是否为数字。 System.out.println(b); boolean b1 = Character.isLetter(c);//判断指定字符是否为字母 System.out.println(b1); boolean b2 = Character.isUpperCase(c);//判断是否为大写字母 System.out.println(b2); boolean b3 = Character.isLowerCase(c);//判断是否为小写字母 System.out.println(b3); boolean b4 = Character.isWhitespace(c);//判断是否为空格 System.out.println(b4); char c3 = Character.toUpperCase(c);//转为大写字母 System.out.println(c3); char c4 = Character.toLowerCase(c3);//转为小写字母 System.out.println(c4); } }
运行结果: d d d d false true false true false D d
五、String类
java.lang.String
public final class String extends Object
String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String对象为什么不可变?
字符串常量池是java堆内存中一个特殊的存储区域,当创建一个String对象,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。
代码如下:
String s1 = "ABC";
String s2 = "ABC";
在java中内存分为堆内存和栈内存,堆内存存放的是对象,栈内存存储对象的引用,字符串“ABC”存放在堆内存中,而s1,s2作为对象的引用则存放在栈内存中,原理如下:
堆内存 栈内存
String对象 "ABC"______ s1 String变量的引用
|______ s2
假设:字符串对象允许改变,那么将会导致各种逻辑错误。比如改变一个对象却影响到另外一个独立的对象。
常用方法
- charAt(int i):返回指定索引处的字符;
- length():返回字符串的长度;
- contains(CharSequence c):判断字符串中是否包含指定的字符序列;CharSequence是一个接口,String是它的一个实现类
- startsWith(String s):判断字符串是否以指定的前缀开始;
- endsWith(String s):判断字符串是否以指定的后缀结束;
- indexOf(char c):返回指定字符在字符串中第一次出现的索引;
- lastIndexOf(char c):返回指定字符在字符串中最后一次出现的索引;
- isEmpty():当且仅当字符串长度为0时,返回true;
- replace(char old,char new):把字符串中的old字符替换为new字符,然后返回一个新字符串;
- split(String s):根据指定的规则拆分字符串,返回字符串数组;
- subString(int begin,int end):按照指定的索引截取字符串,从begin(包含)开始,到end(不包含)结束;
- toLowerCase():把字符串的英文字母全部转为小写;
- toUpperCase():把字符串的英文字母全部转为大写;
- trim():清除字符串前后的空白字符;
- valueOf():把指定类型的数据转为字符串类型;
- toCharArray():把字符串转为字符数组;
package Practice_Anything; public class String_Demod { public static void main(String[] args) { String s = new String("ZhangYuxian"); int i = s.length();//返回字符串的长度; System.out.println("s的长度:"+i); char c = s.charAt(5);//返回指定索引处的字符; System.out.println("索引值为5的字母:"+c); boolean flag = s.contains("xian");//判断字符串中是否包含指定的字符序列 System.out.println("字符串s中是否存在xian:"+flag); boolean flag1 = s.startsWith("Z");//判断字符串是否以指定的前缀开始 System.out.println("s字符串是否以Z开始:"+flag1); boolean flag2 = s.endsWith("n");//判断字符串是否以指定的后缀结束 System.out.println("s字符串是否以n结束:"+flag2); int i1 = s.indexOf(‘Y‘);//返回指定字符在字符串中第一次出现的索引 System.out.println("字符Y在字符串s中第一次出现的索引:"+i1); int i2 = s.lastIndexOf(‘n‘);//返回指定字符在字符串中最后一次出现的索引 System.out.println("字符n在字符串s中最后一次出现的索引:"+i2); boolean flag3 = s.isEmpty();// 当且仅当 length() 为 0 时返回 true。 System.out.println("字符串s的长度是否为零:"+flag3); //把字符串中的old字符替换为new字符,然后返回一个新字符串; String s1 = s.replace(‘x‘,‘t‘); System.out.println("把s字符串中的x替换为t后的新字符串为:"+s1); String[] s2 = s.split("n");//根据指定的规则拆分字符串,返回字符串数组; System.out.print("用指定的n拆分字符串s,得到字符串数组:"); for(String s3:s2){ System.out.print(s3+" "); } System.out.println(); String s3 = s.substring(5);//按照指定的索引截取字符串 System.out.println("从字符串s中索引为5的字符截取生成新的字符串:"+s3); String s4 = s.substring(0,5);//按照指定的索引截取字符串,从begin(包含)开始,到end(不包含)结束; System.out.println("从字符串s中截取索引值[0,5)的字符组成新的字符串"+s4); String s5 = s.toLowerCase();//把字符串的英文字母全部转为小写; System.out.println("把字符串s中的英文字母全部转为小写:"+s5); String s6 = s.toUpperCase();//把字符串的英文字母全部转为大写; System.out.println("把字符串s中的英文字母全部转为大写:"+s6); String s7 =" Z h a ng "; System.out.println("原始状态:"+s7); String s8 = s7.trim();//清除字符串前后的空白字符; System.out.println("清除字符串前后空格后的状态:"+s8); char[] chars = {‘Z‘,‘y‘,‘x‘}; String s9 = String.valueOf(chars);//把指定类型的数据转为字符串类型; System.out.println("把char类型的数组转化为字符串类型:"+s9); String s10 = s.toString();// 返回此对象本身(它已经是一个字符串!)。 System.out.println(s10); char[] s11 = s.toCharArray();//把字符串转为字符数组; System.out.print("遍历字符数组:"); for(char c1:s11){ System.out.print(c1+" "); } } }
s的长度:11 索引值为5的字母:Y 字符串s中是否存在xian:true s字符串是否以Z开始:true s字符串是否以n结束:true 字符Y在字符串s中第一次出现的索引:5 字符n在字符串s中最后一次出现的索引:10 字符串s的长度是否为零:false 把s字符串中的x替换为t后的新字符串为:ZhangYutian 用指定的n拆分字符串s,得到字符串数组:Zha gYuxia 从字符串s中索引为5的字符截取生成新的字符串:Yuxian 从字符串s中截取索引值[0,5)的字符组成新的字符串Zhang 把字符串s中的英文字母全部转为小写:zhangyuxian 把字符串s中的英文字母全部转为大写:ZHANGYUXIAN 原始状态: Z h a ng 清除字符串前后空格后的状态:Z h a ng 把char类型的数组转化为字符串类型:Zyx ZhangYuxian 遍历字符数组:Z h a n g Y u x i a n
以上是关于Java常用工具类的主要内容,如果未能解决你的问题,请参考以下文章