# Reverse Integer

## Problem

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 [-2^31, 2^31 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

```
Input: x = 123
Output: 321
```

Example 2:

```
Input: x = -123
Output: -321
```

Example 3:

```
Input: x = 120
Output: 21
```

Constraints:

- -2^31 <= x <= 2^31 - 1

## Solution

This is so ugly.

```
class Solution {
public int reverse(int x) {
if (x == 0) {
return 0;
}
var s = "";
boolean isNegative = x < 0;
if (isNegative) {
x *= -1;
s = "-";
}
while (x > 0) {
var next = x % 10;
s = s + String.valueOf(next);
x = x / 10;
}
try {
x = Integer.parseInt(s);
return x;
} catch (Exception e) {
return 0;
}
}
}
```