私は、データ内のすべての電話番号(つまり、発信者IDに似ている)の全期間を合計する方法が必要な練習に取り組んでいます。私は期間を合計することに成功しましたが、すべてのデータが印刷されているわけではありません。私はこれがなぜであるのかを考えようとしてきましたが、私はそれの周りに私の頭を包むことはできません。どんな助けでも大歓迎です。以下 はコードです:ループが最後まで実行されていませんか?
//initial code provided
public static void main(String[] args) {
String[] phoneNumbers = new String[100];
int[] callDurations = new int[phoneNumbers.length];
int size = 0;
size = addCall(phoneNumbers, callDurations, size, "555-555-5555", 137);
size = addCall(phoneNumbers, callDurations, size, "555-555-0000", 12);
size = addCall(phoneNumbers, callDurations, size, "555-555-1234", 26);
size = addCall(phoneNumbers, callDurations, size, "555-555-8888", 10);
size = addCall(phoneNumbers, callDurations, size, "555-555-8888", 10);
size = addCall(phoneNumbers, callDurations, size, "555-555-7777", 10);
}
public static int addCall(String[] phoneNumbers, int[] callDurations, int size, String newNumber, int newDuration) {
if (size >= phoneNumbers.length) {
System.out.println("Error adding " + newNumber + ": array capacity exceeded.");
} else {
phoneNumbers[size] = newNumber;
callDurations[size] = newDuration;
size++;
}
return size;
}
//the portion of code that I'm trying to write
public static void totalDurations(String[] phoneNumbers, int[]
callDurations, int size) {
String[] copyNum = new String[phoneNumbers.length];
int[] copyDur = new int[phoneNumbers.length];
int newSize = size;
int pos = 1; //counter for next available empty cell
copyNum[0] = phoneNumbers[0];
copyDur[0] = callDurations[0];
for (int i = 0; i < newSize; i++){
for (int j = 1; j < size; j++){
if (copyNum[i] != phoneNumbers[j]){
copyNum[i+pos] = phoneNumbers[j];
pos++;
}
else {
copyDur[i] += callDurations[j];
newSize = newSize -1;
}
}
System.out.println(copyNum[i] + ":" + copyDur[i]+ "s");
}
}
私の現在の出力
Total Durations:
555-555-5555:137s
555-555-0000:12s
555-555-1234:26s
555-555-8888:20s
IDEのデバッグ機能に精通していますか? –
いいえ。私はJava(現在はDr Javaを実行しています)に少し慣れていて、デバッガの使用に慣れていません。 – sly
その部分は働き、インストラクターによって提供されました。いいえ、私はArrayListsを学んでいません。 – sly