Java 比較字符串實(shí)例詳解
Java 比較字符串實(shí)例詳解
公司讓實(shí)現(xiàn)一個(gè)自動(dòng)清除1小時(shí)內(nèi)數(shù)據(jù),SQL不熟悉,無奈之下,只能本地DB存儲(chǔ)當(dāng)前時(shí)間+小時(shí)去和當(dāng)前時(shí)間進(jìn)行比對(duì)。折騰好半天,突然想到Java提供了一個(gè)方法,也是進(jìn)行字符串比較的,傻眼了。一起來看看吧~
CompareTo()方法簡(jiǎn)介
首先,它屬于java.lang.String包下,是Java提供的一個(gè)字符串比較的方法,詳情介紹如下:
CompareTo()返回值: int
返回值類型分別有三種,小于0,等于0,大于0
1. 如果字符串相等返回值0;
2. 如果第一個(gè)字符和參數(shù)的第一個(gè)字符不等,結(jié)束比較,返回他們之間的差值(ascii碼值)(負(fù)值前字符串的值小于后字符串,正值前字符串大于后字符串);
3. 如果第一個(gè)字符和參數(shù)的第一個(gè)字符相等,則以第二個(gè)字符和參數(shù)的第二個(gè)字符做比較,以此類推,直至比較的字符或被比較的字符有一方全比較完,這時(shí)就比較字符的長(zhǎng)度。
PS:拓展下什么是ascii碼值
ASCII(American Standard Code for Information Interchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC 646。
說白了ASCII碼就是解決了一個(gè)以數(shù)字形式表示文本的問題
使用+實(shí)踐 二合一
接下來要實(shí)現(xiàn)的就是本文開頭說的比較時(shí)間。
上代碼~
System.out.println("當(dāng)前時(shí)間為:"+getTimeByHour());
System.out.println(getTimeByHour());
System.out.println("下一小時(shí)為:"+getTimeByHour(1));
System.out.println("對(duì)比結(jié)果為:"+getTimeByHour().compareTo(getTimeByHour(1)));
System.out.println("對(duì)比結(jié)果為:"+getTimeByHour(1).compareTo(getTimeByHour(0)));
System.out.println("對(duì)比結(jié)果為:"+getTimeByHour(1).compareTo(getTimeByHour(1)));
/**
* 獲取當(dāng)前時(shí)間
* @return
*/
public static String getTimeByHour() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + 0);
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
}
/**
* 獲取當(dāng)前時(shí)間后一小時(shí)
* @param hour
* @return
*/
public static String getTimeByHour(int hour) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hour);
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
}
運(yùn)行結(jié)果
當(dāng)前時(shí)間為:2017-03-28 23:42:06 下一小時(shí)為:2017-03-29 00:42:06 對(duì)比結(jié)果為:-1 對(duì)比結(jié)果為:1 對(duì)比結(jié)果為:0
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
spring+springmvc+mybatis+maven入門實(shí)戰(zhàn)(超詳細(xì)教程)
這篇文章主要介紹了spring+springmvc+mybatis+maven入門實(shí)戰(zhàn)(超詳細(xì)教程),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
Springboot通過ObjectMapper配置json序列化詳解
SpringBoot默認(rèn)集成Jackson庫(kù),其中ObjectMapper類是核心,用于Java對(duì)象與JSON字符串的互轉(zhuǎn),提供配置序列化特性、注冊(cè)模塊等方法,在SpringBoot中可以全局配置JSON格式,如日期格式化、將Long轉(zhuǎn)為字符串,還可以配置序列化時(shí)的各種規(guī)則,感興趣的可以了解一下2024-10-10
SpringBoot整合EasyExcel實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的并行導(dǎo)出與壓縮下載
在 Spring Boot 應(yīng)用中,整合 EasyExcel 實(shí)現(xiàn)并行導(dǎo)出數(shù)據(jù)并進(jìn)行 Zip 壓縮下載可以極大地提高數(shù)據(jù)處理效率和用戶體驗(yàn),文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-10-10
windows下vscode+vs2019開發(fā)JNI的示例
本文給大家普及windows下vscode+vs2019開發(fā)JNI的示例以及各個(gè)環(huán)節(jié)的注意事項(xiàng),文章通過示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06
JavaEE實(shí)現(xiàn)基于SMTP協(xié)議的郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了JavaEE實(shí)現(xiàn)基于SMTP協(xié)議的郵件發(fā)送功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
Java 淺復(fù)制和深復(fù)制的實(shí)例詳解
這篇文章主要介紹了Java 淺復(fù)制和深復(fù)制的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
Spring Boot 2.0 配置屬性自定義轉(zhuǎn)換的方法
這篇文章主要介紹了Spring Boot 2.0 配置屬性自定義轉(zhuǎn)換的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11

