题目:
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各个运算符的优先级
一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。