您的位置:

Java中的 toLowerCase() 方法

一、toLowercase()方法概述

在Java编程中,经常需要处理字符串的大小写,其中toLowerCase()方法就是将字符串转换为小写字母。该方法属于String类的一种方法,可以对所有字符串进行操作,返回结果是一个新的字符串,而不是对原有字符串进行修改。

其基本语法如下:

public String toLowerCase()

该方法不需要传递任何参数,返回值是一个新的字符串,该字符串由调用toLowerCase()方法的字符串转换为小写字母后得到。

二、使用示例

以下代码演示了toLowerCase()方法的基本使用:

public class Test {
    public static void main(String[] args) {
        String str = "Hello world!";
        String lowercase = str.toLowerCase();
        System.out.println(lowercase);
    }
}

以上代码输出结果:

hello world!

可以看出,toLowerCase()方法将原字符串转换为小写形式后返回一个新的字符串。

三、思考拓展

(一) toLatin1() 方法的使用

String类中提供了toLatin1()方法,这个方法将一个字符串转换为一个没有符号扩展的Latin-1(ISO8859-1)编码的字节数组。在构建Java虚拟机时,如果检测到一个字符串toLatin1()方法被连续调用,虚拟机就会尝试在Java虚拟机中缓存该字节数组。(关于Java字串编码请参考JVM规范)下面是一个示例代码:

public class Test {
    public static void main(String[] args) {
        String str = "Hello world!";
        byte[] bytes = str.getBytes();
        byte[] latin1Bytes = str.getBytes(Charset.forName("ISO-8859-1"));
        for (byte b : bytes) {
            System.out.print(b + " ");
        }
        System.out.println();
        for (byte b : latin1Bytes) {
            System.out.print(b + " ");
        }
        System.out.println();
    }
}

以上代码输出结果:

72 101 108 108 111 32 119 111 114 108 100 33 
72 101 108 108 111 32 119 111 114 108 100 33 

可以看出使用toLatin1()方法将原字符串转换为ISO8859-1编码的字节数组后,得到与默认的字节数组相同的结果。

(二) Unicode 大小写转换

由于Java是一种面向国际化编程的语言,因此对不同语言的字母大小写转换方式也需要进行处理。Java中的String类提供了一个静态方法toUpperCase(Locale loc),该方法将字符串转换为大写形式,其中loc参数指定了体现语言环境的Locale对象。另外还有一个toLowerCase(Locale loc)方法直接将字符串转为小写形式。下面是一个示例代码:

public class Test {
    public static void main(String[] args) {
        String str = "你ABC汉DEF";
        String uppercase1 = str.toUpperCase();
        String uppercase2 = str.toUpperCase(Locale.ENGLISH);
        String lowercase1 = str.toLowerCase();
        String lowercase2 = str.toLowerCase(Locale.ENGLISH);
        System.out.println(uppercase1);
        System.out.println(uppercase2);
        System.out.println(lowercase1);
        System.out.println(lowercase2);
    }
}

以上代码输出结果:

你ABC汉DEF
你ABC汉DEF
你abc汉def
你abc汉def

可以看出,对于中文字符,无论如何转换大小写都不会影响它的本质,而对于英文字母,转换大小写可以使用默认的Locale.ENGLISH环境。

(三) Lambda 表达式与 toLowerCase()

Java 8引入了Lambda表达式,该特性可以使我们在代码中更加简洁地处理字符串等非平凡操作,下面是一个使用Lambda表达式的toLowerCase()方法示例:

import java.util.stream.*;

public class Test {
    public static void main(String[] args) {
        String str = "HeLLo WORLD";
        String lowercase = Stream.of(str)
                            .map(s -> s.toLowerCase())
                            .findFirst()
                            .orElse("");
        System.out.println(lowercase);
    }
}

以上代码输出结果:

hello world

可以看出,使用Lambda表达式可以使代码更加简洁明了,而且还支持链式操作,不过应该注意,Lambda表达式需要基于Java 8或以上的版本。

四、总结

toLowerCase()方法是Java语言中提供的字符串转小写的经典方法,相信通过本文对于该方法的讲解,读者们已经对于该方法的使用方式以及内部机制有了更好的理解。同时,在使用过程中,也要注意多和其他语言的支持进行比较,以便更加完美的处理各种情况下的大小写转换。最后,Learn to love Java,to experience more surprises of the programming world!