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