Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
class Solution {
public int reverse(int x) {
String strX = String.valueOf(x);
StringBuffer sb = new StringBuffer();
String tmp;
long longAnswer;
int answer = 0;
if (x < 0){
sb.append("-");
tmp = strX.substring(1);
} else {
tmp = strX;
}
for (int i = tmp.length() - 1; i > -1; i--) {
sb.append(tmp.charAt(i));
}
int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;
longAnswer = Long.parseLong(String.valueOf(sb));
if (minInt <= longAnswer && longAnswer <= maxInt){
answer = (int) longAnswer;
}
return answer;
}
}
int x를 문자열로 바꾼다.int x가 음수라면 "-"를 스트링버퍼 값인 sb에 추가한다. 그리고 "-"기호를 뺀 부분을 String tmp에 넣는다.int x가 양수라면 그대로 String tmp에 넣는다.tmp길이만큼 for문을 역순으로 돌면서 sb에 값을 추가한다.longAnswer란 값을 만들어 sb를 넣는다.