java - 从给定的整数中删除重复的数字

标签 java arrays integer set

我根据以下方法得到了结果,但我不满意。

我想要一些其他方式和有效的方式来获得预期的输出。

输入:

112341

输出:

1234 

输出中不应显示重复项,并且答案必须为 1234

我的解决方案:

public class PrintUnique {
    public static void main(String[] args) {
        int result = printUniquNums(112341);
        System.out.println(result);
    }

    private static int printUniquNums(int num) {

        String nums =  Integer.toString(num);
        char [] ch = nums.toCharArray();
        Set<Character> store = new LinkedHashSet<>();

        String res = "";
        for (int i = 0; i < ch.length; i++){
            if (store.add(ch[i])){
                res += ch[i];
            }
        }
        return Integer.parseInt(res);
    }
 }

最佳答案

对 Java lambda 和流进行一些调整。你的代码也很好。

public static void main(String[] args) {
        int result = printUniquNums(112341);
        System.out.println(result);
    }

    private static int printUniquNums(int num) {

        String nums =  Integer.toString(num);
        List<String> digits = List.of(nums.split(""));
        Set<String> uniqueDigits = new HashSet<>();
        String uniqueNum = digits.stream().filter(uniqueDigits::add).reduce(String::concat).orElse(""); // set add method returns true if value not present
        return Integer.parseInt(uniqueNum);
    }

关于java - 从给定的整数中删除重复的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72502053/

相关文章:

python - 将 3x32x32 大小的 numpy 图像数组转换为 32x32x3 并保存为 Python 中的实际图像

c++ - 减去数组中的每个元素并找到其中最大的

javascript - 如何映射嵌套对象中的特定键值

java - 为什么日期时间的毫秒数 1-1-1970 00 :00:00 is in negative?

java - Tomcat 拒绝访问域上的共享目录

java - 如何从字符串中获取数字和非数字值

algorithm - 获得整数的最高十进制数字的最快方法是什么?

java - 使用有问题的 wsdl 的服务 - 意外的元素异常

algorithm - 多路KK差分算法与贪心算法?

C# ulong 溢出/下溢以某种方式允许