LeetCode-Reverse Integer-Java

题目:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

click to show spoilers.

Note:

The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

需要注意的:1.正负; 2.反转后前面的0要去除,如1000->1,而不是0001; 3. 没有溢出的int反转后可能溢出,应返回0


class Solution {
    public  int reverse(int x) {
	       String  res = "";
	       String s = x+"";
	       if(x<0) {
	    	   res = reverse(s.substring(1));
	    	   res = del(res);
	    	   try {
	    		   return 0-Integer.parseInt(res);  //parseInt溢出会有异常
	    	   }
	    	   catch(Exception e) {
	    		   return 0;
	    	   }
	       }
	       else {
	    	   res = reverse(s);
	    	   res = del(res);
	    	   try {
	    		   return Integer.parseInt(res);
	    	   }
	    	   catch(Exception e) {
	    		   return 0;
	    	   }
	       }
	       
	 }
	 //反转字符串,也可以直接调用StringBuffer的reverse
	 public String  reverse(String s) {
		 int len = s.length();
		 char[] a = s.toCharArray();
		 for(int i=0;i<len/2;i++) {
			 char temp = a[i];
			 a[i] = a[len-i-1];
			 a[len-i-1] = temp;
		 }
		 
		 return String.valueOf(a);   //注意字符串转数组,不能写成a.toString返回的是地址字符串
	 }
	 //去除0
	 public  String del(String s) {
		
		 for(int i=0;i<s.length();i++) {
			 if(s.charAt(i) != '0') {
				 return s.substring(i);
			 }
		 }
		 return "0";
		 
	 }

}

 java中如何将char数组转化为String?
1.直接在构造String时建立。 char data[] = {'s', 'g', 'k'}; String str = new String(data);
2.String有方法可以直接转换。 String.valueOf(char[] chr)就可以。 如: char[] cha = {'s','g','h'}; Str


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值