わかりました、私はこのプログラムを Java クラスへの移行のために完成させようとしていますが、この 1 つの部分で問題が発生しています。これ以外はすべて機能しています。私は 3 つの配列、1 つの文字列、2 つの型 int をすべて並列に持っています。これらを名前順、次に番号順でアルファベット順に並べ替える必要があります (最初に文字列配列を使用し、次に最初の int 配列を使用します。並べ替えは 3 番目の配列の影響を受けません。3 次元で並列に練習するためにあります)
これは私がこれまでに持っているコードです。
public static void sortDatabase(int numRecords, String[] sDeptArr,
int[] iCourseNumArr, int[] iEnrollmentArr)
{
System.out.println("Sort the database. \n");
String sTemp = null;
int iTemp = 0;
int eTemp = 0;
for(int i=0; i<numRecords; i++)
{
int iPosMin = i;
for(int j=i+1; j<numRecords; j++)
{
String a = sDeptArr[j];
String b = sDeptArr[iPosMin];
if(a.compareTo(b) != 0)
iPosMin = j;
else if(!sDeptArr[j].equals(sDeptArr[iPosMin]) && iCourseNumArr[j] < iCourseNumArr[iPosMin])
iPosMin = j;
}
sDeptArr[i] = sTemp;
sDeptArr[i] = sDeptArr[iPosMin];
sDeptArr[iPosMin] = sTemp;
iCourseNumArr[i] = iTemp;
iCourseNumArr[i] = iCourseNumArr[iPosMin];
iCourseNumArr[iPosMin] = iTemp;
iEnrollmentArr[i] = eTemp;
iEnrollmentArr[i] = iEnrollmentArr[iPosMin];
iEnrollmentArr[iPosMin] = eTemp;
}
}
Javaで行う必要があります。で構成される 15 行目にエラーが表示されます。
if(a.compareTo(b) != 0)
NullPointerException を取得しています。
基本的に、偽のクラス名とコース番号を並べ替えながら、登録者数をコース名とコース番号に対応するインデックスと並行させます。