更改 String 中字元的大小寫

所述 String 型別提供用於將上殼體和下殼體之間的字串的方法:

這些方法都將轉換後的字串作為新的 String 例項返回:原始 String 物件未被修改,因為 String 在 Java 中是不可變的。有關不可變性的更多資訊,請參閱此內容: Java 中字串的不可變性

String string = "This is a Random String";
String upper = string.toUpperCase();
String lower = string.toLowerCase();

System.out.println(string);   // prints "This is a Random String"
System.out.println(lower);    // prints "this is a random string"
System.out.println(upper);    // prints "THIS IS A RANDOM STRING"

非字母字元(如數字和標點符號)不受這些方法的影響。請注意,在某些條件下,這些方法也可能會錯誤地處理某些 Unicode 字元。

注意 :這些方法是區域設定敏感的,如果用於要獨立於語言環境解釋的字串,則可能會產生意外結果。示例是程式語言識別符號,協議金鑰和 HTML 標記。

例如,土耳其語語言環境中的 "TITLE".toLowerCase() 返回“tıtle”,其中ı (\u0131)LATIN SMALL LETTER DOTLESS I 字元。要獲得區域設定不敏感字串的正確結果,請將 Locale.ROOT 作為引數傳遞給相應的大小寫轉換方法(例如 toLowerCase(Locale.ROOT)toUpperCase(Locale.ROOT))。

儘管在大多數情況下使用 Locale.ENGLISH 也是正確的,但語言不變的方式是 Locale.ROOT

可以在 Unicode Consortium 網站上找到需要特殊外殼的 Unicode 字元的詳細列表。

更改 ASCII 字串中特定字元的大小寫:

要更改以下演算法的 ASCII 字串的特定字元的大小寫,可以使用:

腳步:

  1. 宣告一個字串。
  2. 輸入字串。
  3. 將字串轉換為字元陣列。
  4. 輸入要搜尋的字元。
  5. 在字元陣列中搜尋字元。
  6. 如果找到,請檢查字元是小寫還是大寫。
    • 如果為大寫,則將 32 新增到字元的 ASCII 程式碼中。
    • 如果是小寫,則從字元的 ASCII 程式碼中減去 32。
  7. 從 Character 陣列中更改原始字元。
  8. 將字元陣列轉換回字串。

瞧,角色的情況發生了變化。

該演算法的程式碼示例如下:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter the String");
String s = scanner.next();
char[] a = s.toCharArray();
System.out.println("Enter the character you are looking for");
System.out.println(s);
String c = scanner.next();
char d = c.charAt(0);

for (int i = 0; i <= s.length(); i++) {
    if (a[i] == d) {
        if (d >= 'a' && d <= 'z') {
            d -= 32;
        } else if (d >= 'A' && d <= 'Z') {
            d += 32;
        }
        a[i] = d;
        break;
    }
}
s = String.valueOf(a);
System.out.println(s);