// Check if identical boolean b = s1.equals(s2); // false
// Check if identical ignoring case b = s1.equalsIgnoreCase(s2); // true
// Check order of two strings int i = s1.compareTo(s2); // 32; lowercase follows uppercase if (i < 0) { // s1 precedes s2 } else if (i > 0) { // s1 follows s2 } else { // s1 equals s2 }
// Check order of two strings ignoring case i = s1.compareToIgnoreCase(s3); // -1 if (i < 0) { // s1 precedes s3 } else if (i > 0) { // s1 follows s3 } else { // s1 equals s3 }
// A string can also be compared with a StringBuffer; // see e70 Constructing a String StringBuffer sbuf = new StringBuffer("a"); b = s1.contentEquals(sbuf); // true
String a="2003-10-12"; String b="2003-10-21"; int result=a.compareTo(b); if (result==0) out.print("a=b"); else if (result < 0 ) out.print("a<b"); else out.print("a>b");
这有一段javascript写的 /******************************************************************************** * FUNCTION: Compare Date! Which is the latest! * PARAMETERS: lessDate,moreDate AS String * CALLS: isDate,isBetween * RETURNS: TRUE if lessDate<moreDate *********************************************************************************/ function isComdate (lessDate , moreDate) { if (!isDate(lessDate)) { return(false);} if (!isDate(moreDate)) { return(false);} var less1st = lessDate.indexOf('-'); var less2nd = lessDate.lastIndexOf('-'); var more1st = moreDate.indexOf('-'); var more2nd = moreDate.lastIndexOf('-'); var lessy = lessDate.substring(0,less1st); var lessm = lessDate.substring(less1st+1,less2nd); var lessd = lessDate.substring(less2nd+1,lessDate.length); var morey = moreDate.substring(0,more1st); var morem = moreDate.substring(more1st+1,more2nd); var mored = moreDate.substring(more2nd+1,moreDate.length); var Date1 = new Date(lessy,lessm,lessd); var Date2 = new Date(morey,morem,mored); if (Date1>Date2) { return(false);} return(true);
然后用Date类的before或after方法来比较
返回值为int型,
等于0---两个字符串相等;
小于0---s1小于s2;
大于0---s1大于s2;
如果是不规则(如:2003-2-5 和 2003-10-24),则要转换成日期类型,再比较两个日期的大小。
public Timestamp toTimestamp(String dateString,
String formatter)
{
SimpleDateFormat sdf = new SimpleDateFormat(formatter, Locale.US);
GregorianCalendar gc = new GregorianCalendar();
try
{
gc.setTime(sdf.parse(dateString));
}
catch (ParseException ex)
{
return null;
}
return new Timestamp(gc.getTime().getTime());
}
其中formatter就是时间格式,可以设置为:"yyyy/MM/dd"
然后调用Timestamp类的方法after对两个时间进行比较。
OK了吗?
String s1 = "a";
String s2 = "A";
String s3 = "B";
// Check if identical
boolean b = s1.equals(s2); // false
// Check if identical ignoring case
b = s1.equalsIgnoreCase(s2); // true
// Check order of two strings
int i = s1.compareTo(s2); // 32; lowercase follows uppercase
if (i < 0) {
// s1 precedes s2
} else if (i > 0) {
// s1 follows s2
} else {
// s1 equals s2
}
// Check order of two strings ignoring case
i = s1.compareToIgnoreCase(s3); // -1
if (i < 0) {
// s1 precedes s3
} else if (i > 0) {
// s1 follows s3
} else {
// s1 equals s3
}
// A string can also be compared with a StringBuffer;
// see e70 Constructing a String
StringBuffer sbuf = new StringBuffer("a");
b = s1.contentEquals(sbuf); // true
String b="2003-10-21";
int result=a.compareTo(b);
if (result==0)
out.print("a=b");
else if (result < 0 )
out.print("a<b");
else out.print("a>b");
/********************************************************************************
* FUNCTION: Compare Date! Which is the latest!
* PARAMETERS: lessDate,moreDate AS String
* CALLS: isDate,isBetween
* RETURNS: TRUE if lessDate<moreDate
*********************************************************************************/
function isComdate (lessDate , moreDate)
{
if (!isDate(lessDate)) { return(false);}
if (!isDate(moreDate)) { return(false);}
var less1st = lessDate.indexOf('-');
var less2nd = lessDate.lastIndexOf('-');
var more1st = moreDate.indexOf('-');
var more2nd = moreDate.lastIndexOf('-');
var lessy = lessDate.substring(0,less1st);
var lessm = lessDate.substring(less1st+1,less2nd);
var lessd = lessDate.substring(less2nd+1,lessDate.length);
var morey = moreDate.substring(0,more1st);
var morem = moreDate.substring(more1st+1,more2nd);
var mored = moreDate.substring(more2nd+1,moreDate.length);
var Date1 = new Date(lessy,lessm,lessd);
var Date2 = new Date(morey,morem,mored);
if (Date1>Date2) { return(false);}
return(true);
}
但是这个方法有个缺点,就是要求两个参与比较的字符串的形式及长度必须相同才能够正确比较,否则,比较结果是错的.
例如:
s1 = "02";
s2 = "12";
这样比较是正确的.
但如果是下面的样子,
s1 = "2";
s2 = "12";
比较结果是错误的的