Ich schreibe ein Programm, das einen Dateispeicherort und einen Dateinamen aufruft und in ein String-Array verwandelt. Das Programm kompiliert, aber wenn es ausgeführt wird, kommt es mit Konsolenfehlern zurück. Ich bin neu in Java und ich weiß nicht, wie ich diese Konsolenfehler beheben kann oder warum sie auftreten. Wenn mir jemand helfen könnte, wäre das großartig. Ich habe mit Kommentaren markiert, wo die zwei Fehler sind. Der erste Fehler ist in der Hauptmethode und der andere in der bubblesort-Methode.Konsolenfehler beim Aufrufen des Festplatten-Dateiprogramms
EDIT: Dies ist der Fehler I erhalten,
Exception in thread "main" java.lang.NullPointerException bei java.lang.String.compareTo (Unknown Source) bei Assignment7.bubbleSort (Assignment7. java: 63) bei Assignment7.main (Assignment7.java:21)
und wenn ich darauf klicke, führen sie mich dahin, wo ich unten hingewiesen habe.
import java.io.*;
import java.util.*;
public class program3 {
public static void main(String[] args) throws IOException {
String[] list2, targets, list1;
list1 = getInput("C:\\Desktop\\input1.txt");
list2 = bubbleSort(list1); //Console error here
targets = getInput("C:\\Desktop\\targets1.txt");
double seqAvg = seqSearch(list1, targets);
double binAvg = binSearch(list2, targets);
System.out.println("Average number of searches for the seqeuntial search is " + seqAvg);
System.out.println("Average number of searches for the binary search is " + binAvg);
}//end of main method
public static String[] getInput(String filename) throws IOException {
String[] inputArr = new String[100];
Scanner in = new Scanner(new File(filename));
int count = 0;
while(in.hasNext()) {
if (count < 100){
inputArr[count++] = in.next();
} else {
break;
}
}
in.close();
return inputArr;
}// end getInput method
//This method will sort the array and pass it onto a list.
public static String[]bubbleSort(String[] inputArr) {
String[] Array2 = inputArr.clone();
for (int i = 0; i<Array2.length; i++)
{
for (int j = 0; j<Array2.length; j++)
{
if (Array2[i].compareTo(Array2[i+1]) > 0) //Console error here
{
String temp = Array2[i];
Array2[i] = Array2[j];
Array2[j] = temp;
}
}
}
return Array2;
}// End of sort method.
//This method will do a sequential search on the list1
public static double seqSearch(String[] list1, String[] targets){
{
for (int j = 0; j < list1.length; j++)
{
for(String str:targets){
if(list1[j].equalsIgnoreCase(str)){
return j;
}
}
{
return j;
}
}
return -1;
}
}//end of sequentialSearch method
//This method will do a binary search on the list
public static int binSearch(String[] list1, String[] targets) {
int lo = 0;
int hi = list1.length - 1;
int mid = -1;
while(lo <= hi) {
mid = (lo+hi)/2;
for(String str:targets){
if(list1[mid].equalsIgnoreCase(str)){
return mid;
}
hi = mid-1;
} for(String str:targets){
if(list1[mid].equalsIgnoreCase(str)){
return mid;
}
}
lo = mid+1;
{
return mid;
}
}
return mid;
}
}//End of program3
Was ist ein "Konsolenfehler"? Bitte [bearbeiten] Sie Ihren Beitrag und fügen Sie den kompletten Stack-Trace hinzu. Auch _ "ruft einen Dateispeicherort und Dateinamen auf und macht es zu einem String-Array" _ macht keinen Sinn. Bitte klären Sie. –
* "C: \\ Desktop" * Dies ist nicht der übliche Pfad zum Desktop. Haben Sie Ihr eigenes Verzeichnis erstellt? – Tom