提取不重复的整数 1>题目描述2>解法3>更优解 1>题目描述 题目描述: 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0。 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 2>解法 使用了list来存储,因为首先要满足一直查重,还要满足按顺序。 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int value = sc.nextInt(); int length = (""+value).length(); ArrayList<Integer> list = new ArrayList<>(); int i = 0; while(i<length){ if(!list.contains(value%10)){ list.add(value%10); } value/=10; i++; } for(Integer x:list){ System.out.print(x); } } } 3>更优解 使用LinkedHashSet更好,因为去重不用自己来了,而且LinkedHashSet是按照原序输出的 import java.util.*; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); String str = sc.next(); LinkedHashSet<String> set = new LinkedHashSet<>(); for (int i = str.length() - 1; i >= 0; i--) { set.add(str.charAt(i) + ""); } set.stream().forEach(System.out::print); } }