Java更改字符串中字符的大小写

示例

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标签。

例如,在土耳其语区域设置中返回“ ”,其中拉丁字母小写字母I字符在哪里。要获得对语言环境不敏感的字符串的正确结果,请将其作为参数传递给相应的大小写转换方法(例如或)。"TITLE".toLowerCase()tıtleı (\u0131)Locale.ROOTtoLowerCase(Locale.ROOT)toUpperCase(Locale.ROOT)

尽管使用Locale.ENGLISH在大多数情况下也是正确的,但语言不变的方式是Locale.ROOT。

需要特殊大小写的Unicode字符的详细列表可以在Unicode Consortium网站上找到。

更改ASCII字符串中特定字符的大小写:

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

步骤:

  1. 声明一个字符串。

  2. 输入字符串。

  3. 将字符串转换为字符数组。

  4. 输入要搜索的字符。

  5. 在字符数组中搜索字符。

  6. 如果找到,请检查字符是小写还是大写。

    • 如果为大写,请在字符的ASCII代码中添加32。

    • 如果为小写,请从字符的ASCII码中减去32。

  7. 从字符数组更改原始字符。

  8. 将字符数组转换回字符串。

瞧,字符的大小写被改变了。

该算法的代码示例为:

Scanner scanner = new Scanner(System.in);
System.out.println("Enter the String");
String s = scanner.next();
char[] a = s.toCharArray();
System.out.println("输入要查找的字符");
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);