在 Java 中把字符转为大写/小写

Rupam Yadav 2023年10月12日
  1. 使用 toUpperCase()/toLowerCase() 方法将一个字符转换为大写/小写
  2. 使用二进制操作和十六进制将字符转换为大写/小写
  3. 使用 com.apache.commons 中的 capitalize()/lowerCase 将字符转换为大写和小写
在 Java 中把字符转为大写/小写

本教程将介绍将字符转换为小写/大写字符的方法。我们有四种方法,我们将在下面的例子中看到。

使用 toUpperCase()/toLowerCase() 方法将一个字符转换为大写/小写

Characterchar 的封装类,提供了几种方法来操作字符,如 toUpperCase()toLowerCase()。虽然这些方法不能处理所有的 Unicode 字符,但是它们可以处理常用的字母。

我们有两个 char 变量,char1 有一个小写字母,而 char2 有一个大写字母。为了将 char1 转换为大写字符,我们调用 Character 类中的 toUpperCase() 静态方法,并传递 char1 作为参数。同样的,我们也可以将 char2 转换为小写字母;我们调用 toLowerCase() 方法。

public class CharUpperLowerCase {
  public static void main(String[] args) {
    char char1, char2;

    char1 = 'a';
    char2 = 'B';

    char char1UpperCase = Character.toUpperCase(char1);
    char char2LowerCase = Character.toLowerCase(char2);

    System.out.println(char1UpperCase);
    System.out.println(char2LowerCase);
  }
}

输出:

A
b

使用二进制操作和十六进制将字符转换为大写/小写

由于每个字符都有一个 ASCII 值和二进制表示,我们可以进行二进制操作。我们使用十六进制的 0x5f 其二进制表示为 1011111,0x20 表示二进制的 0100000。

char1 的字符是 a,其二进制值是 01100001,我们在字符上附加代表二进制 AND 运算的符号&0x5f。我们知道 0x5f 的二进制值是 1011111,当我们执行 01100001 和 1011111 之间的 AND 操作时,我们得到的值 01000001 就是大写字母 A 的二进制表示。

char2 包含大写字符 B,其二进制代码为 01000010。我们附加等于 OR 二进制操作的|符号和 0x20,其二进制值为 0100000。现在 01000010 OR 0100000 将被执行,结果将是 01100010,与小写字符 b 相同。

请注意,由于我们使用 char 类型来保存字符,二进制值被转换为它们的代表字符,而不需要任何转换。

public class CharUpperLowerCase {
  public static void main(String[] args) {
    char char1, char2;

    char1 = 'a' & 0x5f;
    char2 = 'B' | 0x20;

    System.out.println(char1);
    System.out.println(char2);
  }
}

输出:

A
b

使用 com.apache.commons 中的 capitalize()/lowerCase 将字符转换为大写和小写

在这个例子中,我们使用 Apache Commons Library 中的 StringUtils 类。首先,我们使用下面的 maven 依赖关系在项目中加入这个库。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

StringUtils 顾名思义,提供了操作字符串的实用方法。我们有两个字符串,每个字符串中都有一个字符。string1 有一个小写的 a。我们使用 StringUtils.capitalize() 并将 string1 作为参数传递给我们,将其转换为大写。string2 有一个大写的 B。我们可以使用 StringUtils.lowerCase() 并传递 string2 作为参数将其转换为小写。

我们得到字符串类型的结果,但我们的目标是得到 char 数据类型的值,所以,我们使用 charAt(0) 来得到两个字符串中唯一的一个字符作为 char

import org.apache.commons.lang3.StringUtils;

public class CharUpperLowerCase {
  public static void main(String[] args) {
    char char1, char2;

    String string1 = "a";
    String string2 = "B";

    String string1UpperCase = StringUtils.capitalize(string1);
    String string2LowerCase = StringUtils.lowerCase(string2);

    char1 = string1UpperCase.charAt(0);
    char2 = string2LowerCase.charAt(0);
    System.out.println(char1);
    System.out.println(char2);
  }
}

输出:

A
b
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java Char