在 Java 中把字元轉為大寫/小寫

Rupam Yadav 2023年1月30日 2021年2月7日
  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
Author: 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