Java 比較字符串實(shí)例詳解
Java 比較字符串實(shí)例詳解
公司讓實(shí)現(xiàn)一個自動清除1小時內(nèi)數(shù)據(jù),SQL不熟悉,無奈之下,只能本地DB存儲當(dāng)前時間+小時去和當(dāng)前時間進(jìn)行比對。折騰好半天,突然想到Java提供了一個方法,也是進(jìn)行字符串比較的,傻眼了。一起來看看吧~
CompareTo()方法簡介
首先,它屬于java.lang.String包下,是Java提供的一個字符串比較的方法,詳情介紹如下:
CompareTo()返回值: int
返回值類型分別有三種,小于0,等于0,大于0
1. 如果字符串相等返回值0;
2. 如果第一個字符和參數(shù)的第一個字符不等,結(jié)束比較,返回他們之間的差值(ascii碼值)(負(fù)值前字符串的值小于后字符串,正值前字符串大于后字符串);
3. 如果第一個字符和參數(shù)的第一個字符相等,則以第二個字符和參數(shù)的第二個字符做比較,以此類推,直至比較的字符或被比較的字符有一方全比較完,這時就比較字符的長度。
PS:拓展下什么是ascii碼值
ASCII(American Standard Code for Information Interchange,美國信息交換標(biāo)準(zhǔn)代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC 646。
說白了ASCII碼就是解決了一個以數(shù)字形式表示文本的問題
使用+實(shí)踐 二合一
接下來要實(shí)現(xiàn)的就是本文開頭說的比較時間。
上代碼~
System.out.println("當(dāng)前時間為:"+getTimeByHour()); System.out.println(getTimeByHour()); System.out.println("下一小時為:"+getTimeByHour(1)); System.out.println("對比結(jié)果為:"+getTimeByHour().compareTo(getTimeByHour(1))); System.out.println("對比結(jié)果為:"+getTimeByHour(1).compareTo(getTimeByHour(0))); System.out.println("對比結(jié)果為:"+getTimeByHour(1).compareTo(getTimeByHour(1))); /** * 獲取當(dāng)前時間 * @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)前時間后一小時 * @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)前時間為:2017-03-28 23:42:06 下一小時為:2017-03-29 00:42:06 對比結(jié)果為:-1 對比結(jié)果為:1 對比結(jié)果為:0
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Spring獲取當(dāng)前類在容器中的beanname實(shí)現(xiàn)思路
這篇文章主要介紹了Spring獲取當(dāng)前類在容器中的beanname,實(shí)現(xiàn)思路只需繼承BeanNameAware接口,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07超詳細(xì)講解Java秒殺項目登陸模塊的實(shí)現(xiàn)
這是一個主要使用java開發(fā)的秒殺系統(tǒng),項目比較大,所以本篇只實(shí)現(xiàn)了登陸模塊,代碼非常詳盡,感興趣的朋友快來看看2022-03-03Oracle + Mybatis實(shí)現(xiàn)批量插入、更新和刪除示例代碼
利用MyBatis動態(tài)SQL的特性,我們可以做一些批量的操作,下面這篇文章主要給大家介紹了關(guān)于Oracle + Mybatis實(shí)現(xiàn)批量插入、更新和刪除的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-01-01idea2023創(chuàng)建JavaWeb教程之右鍵沒有Servlet的問題解決
最近在寫一個javaweb項目,但是在IDEA中創(chuàng)建好項目后,在搭建結(jié)構(gòu)的時候創(chuàng)建servlet文件去沒有選項,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于idea2023創(chuàng)建JavaWeb教程之右鍵沒有Servlet問題的解決方法,需要的朋友可以參考下2023-10-10springboot集成redis實(shí)現(xiàn)消息的訂閱與發(fā)布
本文主要介紹了springboot集成redis實(shí)現(xiàn)消息的訂閱與發(fā)布,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05Java內(nèi)存劃分:運(yùn)行時數(shù)據(jù)區(qū)域
聽說Java運(yùn)行時環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下2021-07-07