您的位置:

Java实现小写转大写

一、背景介绍

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