Java 大小寫最快轉(zhuǎn)換方式實例代碼
Java 大小寫最快轉(zhuǎn)換方式實例代碼
這里直接給出實現(xiàn)代碼,在代碼中注釋都很清楚,不多做介紹。
Java代碼
package io.mycat; import java.util.stream.IntStream; /** * 小寫字母的 'a'=97 大寫字母 A=65 更好相差32利用這個差進行大小寫轉(zhuǎn)換 * @author : Hpgary * @date : 2017年5月3日 10:26:26 * @mail: hpgary@qq.com * */ public class StringUtils { protected final static byte[] CHAR_TYPE = new byte[512]; protected final static byte CHARACTER_DIFFER = 32; static { /** * 先將大寫字母放入 CHAR_TYPE 中,將大寫轉(zhuǎn)換成為小寫字母 * */ IntStream.rangeClosed('A', 'Z').forEach(c -> CHAR_TYPE[c] = (byte) (c + CHARACTER_DIFFER)); /** * 將小寫字母放入 CHAR_TYPE,存值為小寫字母 * */ IntStream.rangeClosed('a', 'z').forEach(c -> CHAR_TYPE[c] = (byte) (c)); } public static byte[] toUpperCase(String src) { byte[] bytes = src.getBytes(); for (int x = 0; x < bytes.length; x++) { int tmpLen = bytes[x] << 1; if (tmpLen < CHAR_TYPE.length && tmpLen >= 0) { byte b = CHAR_TYPE[bytes[x]]; if (b != 0) { bytes[x] = (byte) (b - CHARACTER_DIFFER); } } } return bytes; } public static byte[] toLowerCase(String src) { byte[] bytes = src.getBytes(); for (int x = 0; x < bytes.length; x++) { int tmpLen = bytes[x] << 1; if (tmpLen < CHAR_TYPE.length && tmpLen >= 0) { byte b = CHAR_TYPE[bytes[x]]; if (b != 0) { bytes[x] = b; } } } return bytes; } public static void main(String[] args) { int count = 100000 ; String str = "fdajfadSKfj1221SDKfdasfdsafjdsafjlsadjfkl;sdajflksadjlfkjasdlk;fjasdklfasdA" ; long time2 = System.currentTimeMillis(); for (int x = 0; x < count; x++) { str.toUpperCase(); } System.out.println(System.currentTimeMillis() - time2); //51 - 53 long time1 = System.currentTimeMillis(); for (int x = 0; x < count; x++) { toUpperCase(str) ; } System.out.println(System.currentTimeMillis() - time1); // 35-37 } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!如有疑問請留言,或者到本站社區(qū)討論!
相關文章
java實現(xiàn)輸出字符串中第一個出現(xiàn)不重復的字符詳解
這篇文章主要介紹了java實現(xiàn)輸出字符串中第一個出現(xiàn)不重復的字符詳解的相關資料,需要的朋友可以參考下2017-04-04利用Java實現(xiàn)word導入導出富文本(含圖片)的詳細代碼
這篇文章主要為大家詳細介紹了利用Java實現(xiàn)word導入導出富文本(含圖片),文中的示例代碼講解詳細,對大家的學習或工作有一定的幫助,感興趣的小伙伴可以學習一下2024-02-02java將一個整數(shù)轉(zhuǎn)化成二進制代碼示例
這篇文章主要介紹了java將一個整數(shù)轉(zhuǎn)化成二進制代碼示例,具有一定借鑒價值,需要的朋友可以參考下2017-12-12Springboot項目編譯后未能加載靜態(tài)資源文件的問題
這篇文章主要介紹了Springboot項目編譯后未能加載靜態(tài)資源文件的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08JAVA基礎類庫之String類,StringBuffer類和StringBuilder類
這篇文章主要介紹了Java中基礎類庫的String類,StringBuffer類和StringBuilder類,是Java入門學習中的基礎知識,需要的朋友可以參考下2021-09-09啟動 Eclipse 彈出 Failed to load the JNI shared library jvm.dll
這篇文章主要介紹了有時候,新電腦上回碰到打開Eclipse時,彈出提示“Failed to load the JNI shared library jvm.dll”錯誤,這里給大家分享解決方案2016-08-08基于Spring中的事務@Transactional細節(jié)與易錯點、幻讀
這篇文章主要介紹了基于Spring中的事務@Transactional細節(jié)與易錯點、幻讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11