需要检查另一个“合法”数组阵列的验证
问题描述:
我需要输入第一个数字数组的数量,比输入尽可能多的数字作为数组长度,比需要询问位数组的长度和输入所有的投入和长度一样多。 这部分很容易,做得很好。 现在我需要检查数字阵列中的每个数字出现在数字数组中。 如果是打印的东西,其他打印不是[东西..] 我没有对数字我有一个巨大的问题,当涉及到两位数,我只是不能使它的工作。我已经试过几件事情有许多选择,但仍然无法找到工作的东西,所以我只会张贴在这里的最后一个版本,与个位数的数字工作:需要检查另一个“合法”数组阵列的验证
int numInNumbersArray,
tempoNumber=0,
counterChecks=0,
digitsCount=0;
char digitInDigitsArray;
final char MINUS='-';
boolean isNegative=false,
isMinus=false,
numbersOkay=false;
System.out.println("Please enter the length of the numbers array: ");
int numbersLength=s.nextInt();
int[] numbersArray=new int [numbersLength];
System.out.printf("Please enter %d numbers: ",numbersLength);
for(int i=0;i<numbersArray.length;i++){
numInNumbersArray=s.nextInt();
if(numInNumbersArray<0){
numInNumbersArray*=-1;
isNegative=true;
}
numbersArray[i]=numInNumbersArray;
}
System.out.println("Please enter the length of the digits array: ");
int digitsLength=s.nextInt();
char[] digitsArray=new char [digitsLength];
System.out.printf("Please enter %d digits between 0 - 9 and - if you want: ",digitsLength);
for(int i=0;i<digitsArray.length;i++){
digitInDigitsArray=s.next().charAt(0);
digitsArray[i]=digitInDigitsArray;
if(digitInDigitsArray==MINUS){
isMinus=true;
}
}
if(isMinus!=isNegative){
System.out.println("Not all numbers are OK.");
}else{
for(int i=0;i<numbersArray.length;i++){
tempoNumber=numbersArray[i];
for(int j=0;j<digitsArray.length;j++){
while(counterChecks== 0){
if(tempoNumber<10){
if(tempoNumber==(digitsArray[j]-'0')){
numbersOkay=true;
counterChecks++;
}
else{
numbersOkay=false;
}
}else{
while(tempoNumber>=10){
if(tempoNumber%10==(digitsArray[j]-'0')){
numbersOkay=true;
counterChecks++;
}
else{
numbersOkay=false;
}
tempoNumber/=10;
}
}
digitsCount++;
}
}
}
if(counterChecks==(digitsCount/digitsArray.length)){
System.out.println("All numbers are OK.");
}
else{
System.out.println("Not all numbers are OK.");
}
}
我只是绝望现在很迷茫。我知道这种方法很糟糕,并且无法正常工作,请有人可以帮助解决这个问题,正如我所提到的,我只有两位数字和数字的问题。所以这是重点应该发生的地方。 高级谢谢。 !
答
如果你想检查tempoNumber
中的所有数字,你的while
循环需要运行,而tempoNumber>0
;你当前的代码不会检查最后一位数字。
至于最终结果:逻辑是,只要你找到一个数字不在你的digitsArray
,你就完成了:一个数字中至少有一个数字是不允许的。这表示将numbersOkay
初始化为true
,并在找到坏数字时将其设置为false
。
+0
这仍然是行不通的......我已经试过这个。 – rassko 2014-12-02 20:44:16
如果您有办法将多位数字分解为各自的数字,那么这能解决您的问题吗? – 2014-12-02 20:39:15
显然这就是我需要做的..那就是我试图做的事情,并检查每次(数字中的一位数字)出现在数字验证阵列。 – rassko 2014-12-02 20:42:23
请解释“不起作用”:一个例子,输入,预期和实际输出,将是很大的帮助。事实上,知道'counterChecks'和'digitsCount'也是很好的知识。 – 2014-12-02 21:00:23