一、背景介紹
在我們的日常開發中,我們常常需要將一段文本的小寫字母轉換為大寫字母。這個問題雖然我們可以手動完成,但當數據量比較大時,手動處理就顯得十分繁瑣了。Java提供了現成的API函數可以實現小寫轉大寫的功能,即String類中的toUpperCase()函數。
二、使用toUpperCase()函數進行小寫轉大寫
toUpperCase()函數是String類中提供的字符串操作函數,可以將字符串中的小寫字母全部轉化為大寫字母。
String str = "abCDeFg"; String strUpper = str.toUpperCase(); System.out.println(strUpper); // 輸出結果:ABCDEFG
上面的代碼演示了如何使用toUpperCase()函數將字符串中的小寫字母轉化為大寫字母,非常簡單易懂。如果我們要將一段文本中的所有小寫字母都轉換為大寫字母,只需要將文本存儲為字符串類型,然後調用toUpperCase()函數即可。
三、自定義方法實現小寫轉大寫
除了使用JDK提供的現成函數外,我們也可以自定義方法將小寫字母轉化為大寫字母。下面我們來看一下如何自定義方法實現小寫轉大寫的功能。
public static String upperCaseString(String str) { if (str == null || str.isEmpty()) { return str; } char[] charArray = str.toCharArray(); for (int i = 0; i = 'a' && charArray[i] <= 'z') { charArray[i] = (char) (charArray[i] - 'a' + 'A'); } } return new String(charArray); } // 調用方法 String str = "abCDeFg"; String strUpper = upperCaseString(str); System.out.println(strUpper); // 輸出結果:ABCDEFG
上面的代碼演示了如何使用自定義方法實現小寫轉大寫的功能。該方法首先判斷傳入的字符串是否為空或null,如果為空或null則直接返回原字符串;否則將字符串轉換為字符數組,依次判斷每個字符是否為小寫字母,如果是則將其轉化為對應的大寫字母。最後將字符數組轉換為字符串返回即可。
四、效率對比
在實際開發中,我們可能會遇到需要大量轉換小寫字母為大寫字母的情況。那麼JDK提供的現成函數和自定義方法哪個效率更高呢?下面我們來進行一組簡單的測試。
String str = "abcdefghijklmnopqrstuvwxyz"; long startTime1 = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String upperStr1 = str.toUpperCase(); } long endTime1 = System.currentTimeMillis(); System.out.println("String類toUpperCase()方法耗時:" + (endTime1 - startTime1) + "ms"); long startTime2 = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String upperStr2 = upperCaseString(str); } long endTime2 = System.currentTimeMillis(); System.out.println("自定義方法upperCaseString()耗時:" + (endTime2 - startTime2) + "ms");
上面的代碼演示了對JDK提供的toUpperCase()函數和自定義方法upperCaseString()進行時間對比測試,對26個小寫字母進行轉換100000次,統計兩個方法執行所需的毫秒數,結果如下:
String類toUpperCase()方法耗時:15ms 自定義方法upperCaseString()耗時:103ms
從測試結果可以看出,JDK提供的現成函數toUpperCase()方法比自定義方法upperCaseString()效率更高,推薦使用JDK提供的現成API函數進行小寫轉大寫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/296236.html