Lintcode(37)-反转一个3位整数

反转一个3位整数

/**

  • 反转一个只有3位数的整数。
  • 输入: number = 123 , 输出: 321
  • 输入: number = 900, 输出: 9
  • 你可以假设输入一定是一个只有三位数的整数,这个整数大于等于100,小于1000。
    */
public class ReverseNumbers {
    /**思路:(主要时间花在了判断数字后面是否有连续的0上,然后实现效率也不高)
     * 1.将传入的int型数字转为字符串后转为char[]
     * 2.遍历数组,定义一个标位flag,用于判断结尾是否有连续的0。如果有连续0则flag为false,否则为true,把至加到字符串中
     * 3.字符串在转成int型打印输出
     * @param number 传入的数字
     */
    public static void reverseInteger(int number) {
        String num=String.valueOf(number);
        char[] chars = num.toCharArray();
        String str = "";
        //定义个flag用于判断尾部是否有连续的0
        boolean flag = false;
        for (int i = chars.length - 1; i >= 0; i--) {
            //如果尾部是不是是0 ,则不加至字符串中
            if ((chars[i] - '0') != 0 || flag) {
                flag = true;
                str += chars[i];
            }
        }
        System.out.println(Integer.parseInt(str));
    }
    public static void main(String[] args) {
        reverseInteger(190);
    }
}

收获

 1. 字符类型转成int型:
   (int)char ---> 得到的是字符的ASCII码,并不是实际的值,可用chars[i]-'0'转成int型
 2. StringBuffer 对象有reverse()方法,可直接反转字符顺序

其他借鉴思路

 思路一:
 1. 初始化 StringBuffer 对象 
 2. 将传入的数字append对象中
 3. 调用对象的reverse()方法 ,即可反转字符顺序
 4. 然后将字符串转成int 类型打印输出

思路二
1.  将传入的字符串放入int型数组(可以用对数字取余获得每一个数字放入数组中)
2.  定义一个整数result = num[3]*100+num[2]*10+num[1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值