In dem Programm, das ich schreibe, habe ich eine Klasse Map
und innerhalb dieser Klasse ist eine Funktion coord
genannt, die die Kartenkoordinate des angegebenen Punkts zurückgibt.Funktion, die nichts zurückgibt, wenn es Zeichen zurückgeben sollte
Map
Klassendefinition:
public class Map
{
public static char map[][] = new char[150][150];
public static char coord(Point locat)
{
if ((locat.v <= 0) || (locat.h <= 0))
return '\u0000';
return map[locat.v-1][locat.h-1];
}
public static int readToArray(String filePath)
{
try (InputStream in = new FileInputStream(filePath);
BufferedReader from = new BufferedReader(new InputStreamReader(in))) {
int c, h, v;
h = v = 0;
while ((c = from.read()) != -1) {
if (c == '\n') {
v++;
h = 0;
} else {
map[v][h++] = (char) c;
}
}
in.close();
return v;
} catch (IOException x) {
System.err.println(x);
}
return -1;
}
/* blah blah blah */
}
Point
Klassendefinition:
public class Point
{
public int h, v;
/* blah blah blah */
}
Die Map
Klasse ist statisch. Meine main
Funktion ruft readToArray
auf.
Ich fügte printf
s hinzu, um zu finden, dass die coord
Funktion die Fehlerüberprüfung übergibt, aber die char
zurückgegebene ist leer. Warum ist das und was soll ich tun, um es zu ändern?
Wie können Sie erwarten, dass jemand anderes dies reproduziert? 1) Wir haben keine Ahnung, was in der Eingabedatei ist und gehen damit in das char [] [] Array, 2) Sie geben uns nicht die Hauptmethode, die readToArray aufruft. Bitte lesen Sie http://stackoverflow.com/help/mcve –
** NIE ** nennen Sie Ihre Klasse * Karte * –