我的思路是:
通过示例我们可以判断出一共会有四种情况1.正常情况、2.负数、3.最后一位是0、4.反转后越界。
所以我就打算分为四步进行处理:首先我会创建两个StringBulider,一个用来存储原数字,一个用来存储结果集。
第一种情况进行处理的思路是:
直接使用StringBulider的reverse api进行翻转 。
第二种情况进行处理的思路是:
把负号添加到结果集中,然后把存储数的第一个元素删除,然后当正数处理。
第三种情况进行处理的思路是:
判断最后一位是否为0,为0直接删除存储数中最后一个元素。然后当成第一种情况处理。
第四种情况进行处理的思路是:
这个情况我就利用了Integer的api parseInt,这个api如果越界或者不是整数就会抛出异常,然后我在接收异常,如果是异常我就直接返回0。这样也会把0的情况进行处理。我把0删了,为空也会抛出异常。
//实现整数反转
public class Test3 {public int reverse(int x) {if (x == 0){return 0;}StringBuilder sb = new StringBuilder();//存储结果StringBuilder str = new StringBuilder(x + "");//存放源数据//判断负数if (x < 0){sb.append(str.charAt(0));str.delete(0,1);}//判断最后一位是否为0if (str.charAt(str.length() - 1) == '0'){str.delete(str.length() - 1,str.length());}str.reverse();//反转strsb.append(str);int result = 0;try{result = Integer.parseInt(sb.toString());}catch (Exception e){return 0;}return result;}}