Mi a baj a programommal?
Próbáltam írni egy programot Java-ban, ami egy Excel fájlból olvas be kérdéseket. A kérdéseket mind külön objektumként szerettem volna kezelni, és az egyiket véletlenszerűen kiírni. Azonban hiába néztem át nagyon sokszor nem tudtam rájönni, hogy mi lehet a hiba, miért nem csinál semmit futtatáskor. (Kezdő vagyok Excel fájl kezelésben). Előre is köszönöm a segítséget!
public static class Sorkerdesek {
int szama;
String sorkerdes;
String a;
String b;
String c;
String d;
String valasz;
String kategoria;
public Sorkerdesek(int szama, String sorkerdes, String a, String b, String c, String d, String valasz, String kategoria) {
this.szama = szama;
this.sorkerdes = sorkerdes;
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.valasz = valasz;
this.kategoria = kategoria;
}
}
public static void main(String[] args) {
// TODO code application logic here
try {
Workbook workbook = Workbook.getWorkbook(new File("loim.xls"));
Sheet sheet1 = workbook.getSheet(1);
Sorkerdesek[] skerdes = new Sorkerdesek[500];
for (int i = 0; i < skerdes.length; i++) {
Cell a1 = sheet1.getCell(i,i+1);
String stringa1 = a1.getContents();
Cell a2 = sheet1.getCell(i+1,i+1);
String stringa2 = a2.getContents();
Cell a3 = sheet1.getCell(i+2,i+1);
String stringa3 = a3.getContents();
Cell a4 = sheet1.getCell(i+3,i+1);
String stringa4 = a4.getContents();
Cell a5 = sheet1.getCell(i+4,i+1);
String stringa5 = a5.getContents();
Cell a6 = sheet1.getCell(i+5,i+1);
String stringa6 = a6.getContents();
Cell a7 = sheet1.getCell(i+6,i+1);
String stringa7 = a7.getContents();
skerdes[i] = new Sorkerdesek(i,stringa1,stringa2,stringa3,stringa4,stringa5,stringa6,stringa7);
}
System.out.println("A kérdés: ");
int random = (int) (Math.random()*500);
System.out.println("A random szám: " + random);
System.out.println(skerdes[random].szama + "\n" + skerdes[random].sorkerdes + "\n" +
skerdes[random].a + "\t" + skerdes[random].b + "\n" + skerdes[random].c + "\t" +
skerdes[random].d + "\n" + skerdes[random].valasz + "\n" + skerdes[random].kategoria);
workbook.close();
}catch (Exception e){}
}
}
Van benne néhány szintaktikai hiba, ami miatt le sem fordul. Értelmezd a fordító hibaüzeneteit.
Amit én látok szemmel:
- a konstruktor után van egy fölös }
- a konstruktor hívása után is van egy fölös }
Bocs, ezt visszavonom, most vettem észre a ciklus fejlécet:
- a konstruktor hívása után is van egy fölös }
#1 és #2 vagyok
Ezt is visszavonom, bocsánat:
- a konstruktor után van egy fölös }
Most láttam, hogy ott tényleg véget ér a class, ugyanis inner classt definiáltál, csak nem másoltad be a teljes fájlt.
Tényleg ki kéne írni azt exception-t:
e.printStackTrace();
Ezt a hibaüzenetet írja ki:
java.lang.ArrayIndexOutOfBoundsException: 7
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356)
at excel2.Excel2.main(Excel2.java:74)
Pedig ez elég egyértelmű..
Túlindexelsz. Nincs hetes cella.
Amúgy is elég borzasztó az a ciklustalan rész.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!