使用ASCII转换大小写

笔记背景

今天在看代码的时候突然看到一个有趣的东西,刚好自己又不怎么熟悉,经过我几番研究和分析终于得到了答案和知道了原理。接下来介绍一下这个代码(本人弱鸡,大牛勿喷):
code1.png

相信大多数人都可以看得出来这是一个可以快速格式化字符串首字母为大写的方法。那么它是怎么做到的呢?下面我们来一步步的分析和探讨。

分析过程

第一次看到这个代码的时候,我的疑问点就出现在了 char 类型的字符 “a” 和 “A”上,我当时不明白这里为什么要做这个动作,或者说这么写是为什么呢?我猜测这里是ASCII在从中作梗。于是我开始动手查资料和分析。

代码分析

第一行代码没啥好说的,直接获取字符串的字节数组并保存。
重点在第二行上面。我们知道这个方法是用来格式化首字母为大写的,所以当然要取出来第一个字节(英文字母只占用一个字节)进行操作,然而此时此刻重点也就是后面的加减运算操作。
接下来让我来做一个实验:
code2.png
这时候我们对照ASCII码对照表可以知道小写字母 “a” 的ASCII码值为 97 。从这里可以简单总结出一个结论(这个结论我不知道对不对,如果不对请大神指教):
「Java里面的字符串的字节数组中的字节其实是保存的对应十进制的ASCII码值」
然后带着这个总结出来的 “信念” ,我们试着运行一下这个程序。
code3.png这里我们来看一下, “apple” 的 “a” 码值为97,减去同样的 “a” 则为零,然后再加上码值为65的 “A”,刚好最后的ASCII值为65,也就是“A”。这里面的减 ‘a’ 操作可以理解为计算field的首字母在小写字母中的索引值,然后再加上大写字母 “A” 的起始位置65,得到的索引值就是小写字母所对应的大写字母。至此,基本已经真相大白了。但是我观察了一下码表,其实每个小写字母所对应的大写字母之间的码值相差26个英文字母外加6个(分别为 “[” “/” “]” “^” “_” “、”)位置,由此得出结论:
「大小写之间的ASCII码值相差32,大写转小写则+32,小写转大写则-32」

测试

小写转大写.png
大写转小写.png

结尾

这个方法仅用于做英文字母转换且仅做学习和探讨使用。此文章属学习笔记,记录探讨、研究问题时的过程和心理,当然也欢迎各位童鞋提出宝贵的指导意见。

### 回答1: 你好,我是C知道。您的问题是关于Java中大写字母小写小写字母大写的问题。 在Java中,您可以使用String类的toLowerCase()方法将大写字母转换小写字母,例如: ``` String str = "HELLO WORLD"; String lowerCaseStr = str.toLowerCase(); System.out.println(lowerCaseStr); // 输出 hello world ``` 同样,您也可以使用String类的toUpperCase()方法将小写字母转换大写字母,例如: ``` String str = "hello world"; String upperCaseStr = str.toUpperCase(); System.out.println(upperCaseStr); // 输出 HELLO WORLD ``` 希望这个回答能够解决您的问题。如果您还有其他问题,欢迎随时提问。 ### 回答2: 在Java中,可以使用String类中的方法将大写字母转换小写字母,或将小写字母转换大写字母。 1. 大写字母小写字母: 可以使用String类的toLowerCase()方法将大写字母转换小写字母。该方法会返回一个新的字符串,其中所有大写字母都被转换为相应的小写字母。 例如,假设有一个字符串str,其中包含大写字母,可以使用如下代码将其转换小写字母: String lowerCaseStr = str.toLowerCase(); 2. 小写字母大写字母: 可以使用String类的toUpperCase()方法将小写字母转换大写字母。该方法同样会返回一个新的字符串,其中所有小写字母都被转换为相应的大写字母。 例如,假设有一个字符串str,其中包含小写字母,可以使用如下代码将其转换大写字母: String upperCaseStr = str.toUpperCase(); 需要注意的是,这些方法只会转换字母字符(A-Z或a-z),而不会对其他字符产生影响。如果需要对字符串中的全部字符进行大小写转换,可以使用Character类中的方法。 ### 回答3: 在Java中,我们可以使用String类提供的方法将大写字母转换小写,以及将小写字母转换大写。具体而言,我们可以使用String类的toLowerCase()方法将大写字母转换小写使用toUpperCase()方法将小写字母转换大写。 例如,假设我们有一个字符串str,其中包含大写字母和小写字母。如果我们想将其中的大写字母全部转换小写,我们可以使用以下代码: ``` String str = "HelloWorld"; String lowercaseStr = str.toLowerCase(); System.out.println(lowercaseStr); ``` 以上代码将打印出 "helloworld",其中所有的大写字母都被转换为了小写。 同样地,如果我们想将字符串中的小写字母全部转换大写,我们可以使用以下代码: ``` String str = "HelloWorld"; String uppercaseStr = str.toUpperCase(); System.out.println(uppercaseStr); ``` 以上代码将打印出 "HELLOWORLD",其中所有的小写字母都被转换为了大写。 需要注意的是,String对象是不可变的,这意味着上述代码并没有改变原始字符串str的值,而是返回了一个新的字符串对象。 以上就是在Java中将大写字母转换小写以及将小写字母转换大写的方法。希望对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值