更改 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);