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" )都作為此類的實例實現。
?
字符串是常量;它們的值在創(chuàng)建之后不能更改。字符串緩沖區(qū)支持可變的字符串。因為 String 對象是不可變的,所以可以共享。
?
String對象為什么不可變?
?
字符串常量池是java堆內存中一個特殊的存儲區(qū)域,當創(chuàng)建一個String對象,假如此字符串值已經存在于常量池中,則不會創(chuàng)建一個新的對象,而是引用已經存在的對象。
?
代碼如下:
?
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):根據指定的規(guī)則拆分字符串,返回字符串數組;
* 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");//根據指定的規(guī)則拆分字符串,返回字符串數組; 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("原始狀態(tài):"+s7); String s8 = s7.trim();//清除字符串前后的空白字符;
System.out.println("清除字符串前后空格后的狀態(tài):"+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 原始狀態(tài): Z h a ng 清
除字符串前后空格后的狀態(tài):Z h a ng 把char類型的數組轉化為字符串類型:Zyx ZhangYuxian 遍歷字符數組:Z h a n g Y u x
i a n
?六、日期類
?Date類
java.util.Date
public class Date extends Object
類 Date 表示特定的瞬間,精確到毫秒。?
Calendar類
java.util.Calendar
public abstract class Calendar extends Object
Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段 <>
之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距 <>歷元(即格林威治標準時間 1970 年 1
月 1 日的 00:00:00.000,格里高利歷)的偏移量。
該類還為實現包范圍外的具體日歷系統(tǒng)提供了其他字段和方法。這些字段和方法被定義為 protected。
與其他語言環(huán)境敏感類一樣,Calendar 提供了一個類方法 getInstance,以獲得此類型的一個通用的對象。Calendar 的
getInstance 方法返回一個 Calendar 對象,其日歷字段已由當前日期和時間初始化:
Calendar rightNow = Calendar.getInstance();
Calendar 對象能夠生成為特定語言和日歷風格實現日期-時間格式化所需的所有日歷字段值,例如,日語-格里高里歷,日語-傳統(tǒng)日歷。Calendar
定義了某些日歷字段返回值的范圍,以及這些值的含義。例如,對于所有日歷,日歷系統(tǒng)第一個月的值是MONTH == JANUARY。其他值是由具體子類(例如 ERA
)定義的。有關此內容的細節(jié),請參閱每個字段的文檔和子類文檔。?
Format類?
java.text.Format
public abstract class Format extends Object
?
Format 是一個用于格式化語言環(huán)境敏感的信息(如日期、消息和數字)的抽象基類。
?
Format 定義了編程接口,用于將語言環(huán)境敏感的對象格式化為 String(使用 format 方法)和將 String 重新解析為對象(使用
parseObject 方法)。
?
通常,一個 format 的 parseObject 方法必須能解析任何由其 format 方法格式化的字符串。不過,也可能存在不能解析的異常情況。例如,
format 方法可能創(chuàng)建中間無分隔符的兩個相鄰整數,在這種情況下,parseObject 無法判斷哪個數字屬于哪個數。?
?
?
DateFormat類
java.text.DateFormat
public abstract class DateFormat?
?
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并解析日期或時間。日期/時間格式化子類(如
SimpleDateFormat)允許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。將日期表示為Date 對象,或者表示為從
GMT(格林尼治標準時間)1970 年 1 月 1 日 00:00:00 這一刻開始的毫秒數。
?
DateFormat 提供了很多類方法,以獲得基于默認或給定語言環(huán)境和多種格式化風格的默認日期/時間 Formatter。格式化風格包括
FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用這些風格的更多細節(jié)和示例。?
?
熱門工具 換一換