當前位置:才華齋>計算機>java語言>

Java中日期與字串的處理

java語言 閱讀(1.24W)

Java是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言,下面為大家介紹一下Java中日期與字串的處理,一起來看看!

Java中日期與字串的處理

  日期相關的API

類,是一個日期類,含年、月、日、時、分、秒資訊。

  構造方法:

public Date(); 空參構造,得到當前系統時間的日期。

public Date(long date); //根據指定的毫秒數來構造一個日期。

ndar 類,是一個日曆類。它包含 日期的所有資訊.

方法:

public static Calendar getInstance();

public int get(int field);

public void set(int field, int value);

public void setTime(Date date);

public Date getTime();

還有大量的常量,這些常量就是 field的值.

YEAR,MONTH, DATE,DAY_OF_MONTH, DAY_OF_WEEK. ....

leDateFormat類,日期格式器類[上一講提到過]

  構造方法:

public SimpleDateFormat(String pattern).

注:pattern是指格式化日期的字串。

yyyy 代全4位數字年份

MM 代表2位數字月份

dd 代表2位數字月日

...

有關pattern的細節,可以檢視API文件。

如,我們可以構造一個SimpleDateFormate物件.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

  常用方法:

public String format(Date date); //格式化日期.

public Date parse(String dateStr); //把字串轉成日期

在JAVA中,時間就指至1970年1月1日午夜至現在所經過的毫秒數.它是一個長整型的`數。

  如何獲取這個長整型?

long t = entTimeMillils();

針對日期的操作,可以封裝一個工具類,用來建立日期、格式化日期或是解析日期字串等。

如:

public class DateUtil{

public static Date create(int y,int m, int d){

return create(y,m,d,0,0,0);

}

public static Date create(int y,int m, int d, int h, int minute,int second){

//建立日曆物件

Calendar c = nstance();

//繫結全新日期與時間

(,y);

...

(ND, second);

//返回一個日期

return ime();

}

public static String format(Date d){

final String pattern = "yyyy-MM-dd";

return format(d,pattern);

}

public static String format(Date d, String pattern){

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

return at(d);

}

...

}

  String類的特點:

a).它是不可變的,一旦建立好,就不可再變。

b).底層就是字元陣列.

c).由於字串是程式設計中操作最頻繁的資料,所以,JVM針對字串做了優化處理。提供了 “串池”,如下: ["串池" 也是堆空間。]

  建立字串的2種方式:

方式一: 採用“串池”存放.

String str = "Jack";

String str2 = "Jack";

因為建立第一個str時,由於串池中沒有"Jack"這個字串,所以,在串池中建立了Jack,而當第二個物件str2建立時,此時,串池是已經有了Jack,所以,直接返回Jack的地址給str2.這樣的話,串池中只有1個Jack. 大大降低資源的佔有率,從而提高效率。

所以:

tln(str == str2); //此時會輸出 true

方式二:

String str = new String("Jack");

String str2 = new String("Jack");

以上方式採用new操作符,會在堆空間中申請2塊空間,來分別存放Jack 資料。所以:

tln(str == str2); //此時會輸出 false

所以,建議建立字串物件時,都採用方式一(串池的方式)

String str = "Hello";

str = str + "World"; //會產生臨時物件,佔用更多的空間(資源)

為了改進字串拼接效率較低的情況,API中提供了StringBuilder 和 StringBuffer 兩個來做字串的拼接操作。它們的效是非常高的。

ngBuilder

構造方法:

public StringBuilder();

public StringBuilder(String str);

其它方法:

public StringBuilder append(String str);

public String toString();

StringBuilder與StringBuffer的區別:

StringBuffer是多執行緒安全的,是重量級的。

StringBuilder不是執行緒安全的,是輕量級的。

所以,在非多執行緒環境下,使用StringBuilder。

  字串型別相關類與介面:

介面:Sequence

方法:

charAt(int index);

int length();

String toString();

實現類:

ng

ngBuilder

ngBuffer

  String相關操作方法:

  查詢字元序列的方法:

indexOf(String str);

indexOf(String str, int fromIndex);

lastIndexOf(String str);

lastIndexOf(String str, int fromIndex);

startsWith(String str);

endsWith(String str);

contains(String str);

  求子串的方法:

subString(int start, int end); 含start,不含end

subString(int start); //從start至結尾

  其它方法

concat(String str);

trim(); //去掉前後的空白字元

isEmpty(); 當length()方法0時,為true

replace(String oldStr,String newStr);

replace(char oldChar, char newChar);

split(String pattern); //把字串按給定的字元切割。

getBytes(); //把字串 編碼 成位元組陣列

toCharArray(); //把字串轉換成新的字元陣列