- 相关推荐
Java中日期与字符串的处理
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,下面为大家介绍一下Java中日期与字符串的处理,一起来看看!
日期相关的API
java.util.Date 类,是一个日期类,含年、月、日、时、分、秒信息。
构造方法:
public Date(); 空参构造,得到当前系统时间的日期。
public Date(long date); //根据指定的毫秒数来构造一个日期。
java.util.Calendar 类,是一个日历类。它包含 日期的所有信息.
方法:
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. ....
java.text.SimpleDateFormat类,日期格式器类[上一讲提到过]
构造方法:
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 = System.currentTimeMillils();
针对日期的操作,可以封装一个工具类,用来创建日期、格式化日期或是解析日期字符串等。
如:
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 = Calendar.getInstance();
//绑定全新日期与时间
c.set(Calendar.Year,y);
...
c.set(Calendar.SECOND, second);
//返回一个日期
return c.getTime();
}
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 sdf.format(d);
}
...
}
String类的特点:
a).它是不可变的,一旦创建好,就不可再变。
b).底层就是字符数组.
c).由于字符串是编程中操作最频繁的数据,所以,JVM针对字符串做了优化处理。提供了 “串池”,如下: ["串池" 也是堆空间。]
创建字符串的2种方式:
方式一: 采用“串池”存放.
String str = "Jack";
String str2 = "Jack";
因为创建第一个str时,由于串池中没有"Jack"这个字符串,所以,在串池中创建了Jack,而当第二个对象str2创建时,此时,串池是已经有了Jack,所以,直接返回Jack的地址给str2.这样的话,串池中只有1个Jack. 大大降低资源的占有率,从而提高效率。
所以:
System.out.println(str == str2); //此时会输出 true
方式二:
String str = new String("Jack");
String str2 = new String("Jack");
以上方式采用new操作符,会在堆空间中申请2块空间,来分别存放Jack 数据。所以:
System.out.println(str == str2); //此时会输出 false
所以,建议创建字符串对象时,都采用方式一(串池的方式)
String str = "Hello";
str = str + "World"; //会产生临时对象,占用更多的空间(资源)
为了改进字符串拼接效率较低的情况,API中提供了StringBuilder 和 StringBuffer 两个来做字符串的拼接操作。它们的效是非常高的。
java.lang.StringBuilder
构造方法:
public StringBuilder();
public StringBuilder(String str);
其它方法:
public StringBuilder append(String str);
public String toString();
StringBuilder与StringBuffer的区别:
StringBuffer是多线程安全的,是重量级的。
StringBuilder不是线程安全的,是轻量级的。
所以,在非多线程环境下,使用StringBuilder。
字符串类型相关类与接口:
接口:java.lang.CharSequence
方法:
charAt(int index);
int length();
String toString();
实现类:
java.lang.String
java.lang.StringBuilder
java.lang.StringBuffer
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(); //把字符串转换成新的字符数组
【Java中日期与字符串的处理】相关文章:
Java编程中异常处理的方法12-16
java判断字符串是否为数字的几个方法04-11
java如何处理BOM文本03-17
运用WPS处理日期数据格式的方法02-07
C语言字符串04-14
JAVA中如何执行DOS命令10-13
java中通用的线程池实例代码08-27
在excel中如何进行批处理09-15
关于PHP的日期与时间03-14