我遇到了我正在製作的這個程序的問題。這是程序的目的: 編寫一個程序,將從用戶獲得數字輸入。如果用戶輸入負數,程序將停止接受來自用戶的輸入。然後,程序會從程序中找到重複的數字,並確定它出現的次數。確定數字出現的次數 - Java
這裏的示例輸出:
Enter a number : 5
Enter a number : 5
Enter a number : 7
Enter a number : 2
Enter a number : 7
Enter a number : 3
Numbers Entered:
2 _________ 1
3 _________ 1
5 _________ 3
7 _________ 2
注:如果數字出現兩次或更多次,也不會在輸出中複製。數字也安排。
我已經想通了,第一部分(如果用戶輸入一個負數)
Scanner scan = new Scanner(System.in);
ArrayList<Integer> arrayNumbers = new ArrayList<Integer>();
ArrayList<Integer> countArray = new ArrayList<Integer>();
int x,;
int counter=0;
int confirm;
int length=0;
int input;
int z;
int elements=0;
for (x=0;x<=counter;x++)
{
if (counter==x)
{
System.out.print("Enter a number : ");
input = scan.nextInt();
arrayNumbers.add(input);
confirm = input;
if (confirm<0)
{
counter--;
arrayNumbers.remove(x);
}
else
{
counter++;
length++;
}
}
}
我現在堅持與程序的比較部件。我已經做了一個代碼,但它似乎並沒有工作:
int blah,count,z10;
Arrays.sort(finalArray);
for (int i=0;i<finalArray.length;i++)
{
blah = finalArray[i];
count=0;
while(finalArray[i]==blah&&z10<finalArray.length)
{
count++;
i++;
}
System.out.println("Number : "+blah+" Count : "+count);
}
有人可以幫助我的邏輯或代碼?幫助將不勝感激。謝謝:)
P.S.我只需要使用Arrays來做到這一點。沒有其他方法。
使用HashMap而不是兩個ArrayList –
@ user3226012:您已經以上面*註釋*的形式回答。 –
你乾脆說這是行不通的,會發生什麼?此外,您初始化變量'z10'沒有任何價值,然後比較'finalArray.length'反對while循環,你們真的沒有忘記分配'z10'?還有一兩件事,在內部while循環,可以增加我和我''++,當我變得比數組的長度更大,會發生什麼?你會做'finalArray [i] == blah'的比較,並得到一個越界的錯誤。 –