位操作转换字符大小写
Posted caophoenix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作转换字符大小写相关的知识,希望对你有一定的参考价值。
- 转小写:
ch | 0b00100000
即ch | 0x20
即ch | 32
效果:A-Z
-> a-z
,小写字母、数字、大部分标点符号不变。_
变成了奇怪的字符。
测试:
public static void main(String[] args) {
String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "1234567890"
+ "[]\\;‘,./"
+ "!@#$%^&*()_+{}|:"<>?";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = (char) (chars[i] | 0b00100000);
System.out.print(c);
}
}
- 转大写:
ch & 0b11011111
即ch & 0xDF
即ch & 223
效果:a-z
-> A-Z
,小写字母、小部分标点符号不变。数字和大部分标点符号变成了奇怪的字符。
测试:
public static void main(String[] args) {
String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "1234567890"
+ "[]\\;‘,./"
+ "!@#$%^&*()_+{}|:"<>?";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = (char) (chars[i] & 0b11011111);
System.out.print(c);
}
}
- 大小写翻转:
ch ^ 32
效果:a-z
-> A-Z
,A-Z
-> a-z
。数字和大部分标点符号变成了奇怪的字符。
测试:
public static void main(String[] args) {
String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "1234567890"
+ "[]\\;‘,./"
+ "!@#$%^&*()_+{}|:"<>?";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = (char) (chars[i] ^ 32);
System.out.print(c);
}
}
以上是关于位操作转换字符大小写的主要内容,如果未能解决你的问题,请参考以下文章
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试