算法-整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, −2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
来源:力扣(LeetCode)
class Solution {
public int reverse(int x) {
String origNum = String.valueOf(x);
char[] charArr = origNum.toCharArray();
String reverse = "";
if(charArr[0] == '-'){
reverse = "-";
for(int i = charArr.length-1; i>0;i--){
reverse += charArr[i];
}
}
else{
for(int i = charArr.length-1; i>=0;i--){
reverse += charArr[i];
}
}
int num;
try{
num = Integer.parseInt(reverse);
}
catch(Exception e){
return 0;
}
num = Integer.parseInt(reverse);
if(num<Math.pow(-2,31) || num>Math.pow(2,31) ){
num = 0;
}
return num;
}
}
笔记:
1、数据各种转换方法
int转String使用方法:
int x;
String y = String.valueOf(x);
String转int方法:
int z = Integer.parseInt(y);
String转字符串数组:
char[] charArray = y.toCharArray();
2、异常处理
try{
}
catch(Exception e){
//此处为对异常如何处理
//比如,遇见异常后,返回某个值
}
常用异常
3、JAVA次方运算
-2的31次方:
Math.pow(-2,31)