java强制转换

本文探讨了如何在Java中将小写字母转换为大写字母,涉及ASCII码和类型转换的知识。在处理字符时,由于ASCII码的差异,需要进行强制类型转换。错误地转换可能导致返回类型不匹配的问题。解决方案是使用括号提升运算符的优先级,确保 `(char)` 转换在减法运算之前执行。
摘要由CSDN通过智能技术生成

题目:

Convert a lowercase character to uppercase.
你可以假设输入一定在小写字母 a ~ z 之间

我们知道,大写字母比小写字母的ascaii码小32,所以只要在输入的上面加上32就可以了。
然后……

public class Solution {
    public char lowercaseToUppercase(char character) {
        // write your code here
      return character-32;
    }
}

结果告知我返回类型不匹配,发现自己忘记强转了(其实如果是输出,会自动输出此ascaii码对应的字符的,但是现在是返回)

接下来,开始强转
return (char)character-32;

这个还是不行的,因为这个强转转了character,然后和32计算的时候又变成了int,最后的结果还是int,类型还是不匹配。
其实这种强转,如果对方是个对象,就可以了,比如说

int a; 
(char)a;//这样返回的就是char类型

但是现在还有个运算,那么就把运算包起来,根据符合优先级,先算符号里面的。

public class Solution {
    /**
     * @param character: a character
     * @return: a character
     */
    public char lowercaseToUppercase(char character) {
        // write your code here
      return (char)(character-32);
    }
}

————————————————我是个美丽的分隔符————————————————————
1;普及一下字符的ascaii码知识
ascii码的65-90分别对应A-Z
ascii码的97-122分别对应a-z

再来一张图
在这里插入图片描述
在这里插入图片描述
2:说一下java各个运算符的优先级

一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值