位操作转换字符大小写

Posted caophoenix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作转换字符大小写相关的知识,希望对你有一定的参考价值。

  • 转小写:ch | 0b00100000ch | 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 & 0b11011111ch & 0xDFch & 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-ZA-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);
    }
}

技术图片

以上是关于位操作转换字符大小写的主要内容,如果未能解决你的问题,请参考以下文章

web代码片段

汇编语言第七八章总结

2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试

OCAC暑期比赛第一场 I题 大小写转换密码锁 题解

JavaScript中字符操作之大小写转换

mysql 运算符