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(); //把字符串轉換成新的字符數組
-
如何在Javascript中為String對象添加trim,ltrim,rtrim方法
如何在Javascript中為String對象添加trim,ltrim,rtrim方法呢?下面是小編給大家提供的實現代碼,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。利用Javascript中每個對象(Object)的prototype屬性我們可以為Javascript中的內置對象添加我們自己的方法和屬性。j...
-
Java 異步回調機制實例解析
回調,回調。要先有調用,才有調用者和被調用者之間的回調。下面小編給大家介紹Java異步回調機制實例解析,歡迎閲讀!Java異步回調機制實例解析一、什麼是回調軟件模塊之間總是存在着一定的接口,從調用方式上,可以把他們分為三類:同步調用、回調和異步調用。回調是一種...
-
java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
1、String的==與equal()在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的保存默認的是會把新生成...
-
Java讀取郵件的方法
在Java編程設計中,我們如何通過Java讀取郵件呢?下面小編為大家介紹了Java讀取郵件的'方法,希望能幫到大家!複製代碼代碼如下:publicvoidreceive()throwsException{Log.e(tag,"receive()");//sharedpreference讀取數據,用split()方法,分開字符串。SharedPreferencespre...