题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例
输入
9876673
输出
37689
题目分析
刚拿到这个题的时候,我就想啊,这不很简单嘛!
直接将接收到的整数转换为一个 String
,然后将其使用字符串切分的方法 split("")
得到一个字符串数组,将数组进行去重,逆序等操作即可。
可是,再一想,这题这麽玩就玩坏了,可不是咋地!
然后,就琢磨着,我去对整数去操作,将其每一位都拿出来,得到一个整数数组,对这个数组去重复,然后再判断最后一位是不是0,因为在取模运算时,我使用的范围是 10 位,也就是 Integer 的最大值的位数。这样就可以去按位得到每一位上的数。
java 代码
/**
* Created by Feng on 2020/2/15 12:55
* CurrentProject's name is java8
* 提取不重复的整数
*/
import java.util.*;
public class Main6 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNextInt()){
int num = input.nextInt();
int index = 10;
int[] array = new int[index];
for(int i = 0; index > 0; i++){
int item = num % 10;
num = num / 10;
array[i] = item;
index --;
}
array = Arrays.stream(array).distinct().toArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; i++) {
if(i == array.length - 1 && array[i] == 0){
continue;
}
sb.append(array[i]);
}
System.out.println(Integer.parseInt(sb.toString()));
}
}
}