我根据以下方法得到了结果,但我不满意。
我想要一些其他方式和有效的方式来获得预期的输出。
输入:
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/