反转一个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]