欢迎访问宙启技术站
智能推送

Java中的String类如何实现字符串大小写转换?

发布时间:2023-07-05 22:24:21

在Java中,String类是不可变的,即字符串是固定的,不可被修改。所以对于String类实例已有的字符串来说,是无法直接改变大小写的。但是String类提供了一系列方法,可以用于生成新的字符串实例,实现字符串的大小写转换。

1. toLowerCase():该方法返回一个新的字符串,将原字符串中的所有大写字母转换为小写字母,并返回新的字符串实例。例如:

String str = "Hello World";
String lowerCaseStr = str.toLowerCase();
System.out.println(lowerCaseStr); // 输出:hello world

2. toUpperCase():该方法返回一个新的字符串,将原字符串中的所有小写字母转换为大写字母,并返回新的字符串实例。例如:

String str = "Hello World";
String upperCaseStr = str.toUpperCase();
System.out.println(upperCaseStr); // 输出:HELLO WORLD

这两个方法都是将原字符串复制一份,并在复制的字符串上进行大小写转换。所以原字符串不受影响,仍然保持不可变。

除了以上方法外,还可以使用正则表达式或者字符数组来实现字符串的大小写转换。

1. 使用正则表达式:可以使用正则表达式替换方法replaceAll(),将所有匹配的字符替换为指定的字符。例如:

String str = "Hello World";
String lowerCaseStr = str.replaceAll("[A-Z]", "a");
String upperCaseStr = str.replaceAll("[a-z]", "A");
System.out.println(lowerCaseStr); // 输出:hello world
System.out.println(upperCaseStr); // 输出:HELLO WORLD

2. 使用字符数组:可以将字符串转换为字符数组,然后通过循环遍历数组,再根据字符的ASCII码进行大小写转换。例如:

String str = "Hello World";
char[] charArray = str.toCharArray();
for (int i = 0; i < charArray.length; i++) {
    if (Character.isLowerCase(charArray[i])) {
        charArray[i] = Character.toUpperCase(charArray[i]);
    } else if (Character.isUpperCase(charArray[i])) {
        charArray[i] = Character.toLowerCase(charArray[i]);
    }
}
String newStr = new String(charArray);
System.out.println(newStr); // 输出:hELLO wORLD

这种方式会改变原字符数组,所以在最后需要使用new String(charArray)重新创建一个新的字符串实例。

综上所述,可以通过调用String类的toLowerCase()toUpperCase()方法,或者使用正则表达式或字符数组来实现字符串的大小写转换。