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(); //把字串轉換成新的字元陣列