我的节目很难过!对于这种方法,我必须检查所有数字是否都是不同的,我无法弄清楚我的生活中我做错了什么。我不知道使用阵列是否是最好的方法。我必须调用getDigit方法。
for (int i = 0; i <= numDigits(number); i++) {
int digit = getDigit(number,i);
if (digit == getDigit(number,i)) {
return false;
}
}
return true;
答案 0 :(得分:1)
您可以先从数字中获取每个数字,然后将其添加到HashSet
,然后将HashSet
的尺寸与数字中的数字进行比较
您可以尝试以下代码:
public static void main(String[] args) {
int val = 123554;
Set<Integer> set = new HashSet<Integer>(); // HashSet contains only unique elements
int count = 0; // keeps track of number of digits encountered in the number
// code to get each digit from the number
while (val > 0) {
int tempVal = val % 10;
set.add(tempVal); // add each digit to the hash set
// you can have a boolean check like if(!set.add(tempVal)) return false; because add() returns false if the element is already present in the set.
val = val / 10;
count++;
}
if (count == set.size()) {
System.out.println("duplicate digit not present");
} else {
System.out.println("duplicate digit present");
}
}
答案 1 :(得分:0)
使用 类似 的内容:
以正确顺序打印数字的代码:
int number; // = and int
LinkedList<Integer> stack = new LinkedList<Integer>();
while (number > 0) {
stack.push( number % 10 );
number = number / 10;
}
while (!stack.isEmpty()) {
print(stack.pop());
}
再次, 类似 :
public static boolean duplicates (int [] x, int numElementsInX ) {
Set<Integer> set = new HashSet<Integer>();
for ( int i = 0; i < numElementsInX; ++i ) {
if ( set.contains( x[i])) {
return true;
}
else {
set.add(x[i]);
}
}
return false;
}
如果你可以分割数组,可以使用另一种方法:
int[] numbers = { 1, 5, 23, 2, 1, 6, 3, 1, 8, 12, 3 };
Arrays.sort(numbers);
for(int i = 1; i < numbers.length; i++) {
if(numbers[i] == numbers[i - 1]) {
System.out.println("Duplicate: " + numbers[i]);
}
}
答案 2 :(得分:0)
我想你想比较例如12345和23145的数字,并提示错误,如果它们是相同的(逐位数字,提示为真),我是对的吗? 如果你想这样做,你应该制作2个数组,你必须确保比较两者的每个位置,这样你就可以逐位进行比较。
希望它可以帮到你
答案 3 :(得分:0)
public boolean unique(int theNumber) {
String number = new Integer(theNumber).toString();
Set<Character> set = new LinkedHashSet<Character>();
for(char c:number.toCharArray()) {
set.add(Character.valueOf(c));
}
return number.length() == set.size();
}