一、背景介绍
在我们的日常开发中,我们常常需要将一段文本的小写字母转换为大写字母。这个问题虽然我们可以手动完成,但当数据量比较大时,手动处理就显得十分繁琐了。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 < charArray.length; i++) { if (charArray[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函数进行小写转大写。