更改 String 中字元的大小寫
所述 String
型別提供用於將上殼體和下殼體之間的字串的方法:
toUpperCase
將所有字元轉換為大寫toLowerCase
將所有字元轉換為小寫
這些方法都將轉換後的字串作為新的 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 字串的特定字元的大小寫,可以使用:
腳步:
- 宣告一個字串。
- 輸入字串。
- 將字串轉換為字元陣列。
- 輸入要搜尋的字元。
- 在字元陣列中搜尋字元。
- 如果找到,請檢查字元是小寫還是大寫。
- 如果為大寫,則將 32 新增到字元的 ASCII 程式碼中。
- 如果是小寫,則從字元的 ASCII 程式碼中減去 32。
- 從 Character 陣列中更改原始字元。
- 將字元陣列轉換回字串。
瞧,角色的情況發生了變化。
該演算法的程式碼示例如下:
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);