Voici ce que j'essaie de faire: Je lis un fichier depuis la ligne de commande. Le fichier contient une liste de données, en dessous de ce paragraphe est à quoi il ressemble. Le problème que j'ai est avec les instructions if.Array Index hors limites
import java.util.*;
import java.io.*;
public class VehicleTest {
public static void main(String[] args) throws FileNotFoundException {
String vehicle = "vehicle";
String car = "car";
String americanCar = "american car";
String foreignCar = "foreign car";
String truck = "truck";
String bicycle = "bicycle";
File file = new File(args[0]);
Scanner input = new Scanner(file);
String[] autos = new String[100];
ArrayList allVehicles = new ArrayList();
for (int i = 0; i < autos.length; i++) {
autos[i] = input.nextLine();
}
int j = 0;
int i = 0;
while (i++ < autos.length) {
if (vehicle.equalsIgnoreCase(autos[j++])) {
Vehicle v = new Vehicle();
v.setOwnerName(autos[j]);
allVehicles.add(v);
}else if(car.equalsIgnoreCase(autos[j++])){
Car c = new Car();
c.setOwnerName(autos[j]);
allVehicles.add(c);
}
}
for(Object a: allVehicles){
System.out.println(a);
}
}
}
Dans le code pseudo serait:
while i is less than the length of the string array
if you see the word vehicle create a new vehicle object and add it to the arrayList.
if you see the word car create a new car object and add it to the arrayList.
.....
Les problèmes est que je reçois une exception arrayOutOfBounds avec le code que je utilise.
Je comprends que j ++ est ce qui ne va pas, mais comment est-ce que je suis censé parcourir le tableau de chaînes pour pouvoir lire chaque ligne et créer les objets appropriés? Je ne sais pas quoi faire. Je ai besoin d'aide.
foreign car
aMarioy
Mario's house
(777) 777-7777
[email protected]
false
black
Italy
4415.91
truck
aDougy
Doug's house
(123) 456-7890
[email protected]
30
61234.56
8/10/2003
vehicle
aRobby
Rob's house
(987) 654-3210
[email protected]
bicycle
bTommy
Tom's house
(246) 810-1214
[email protected]
7
truck
bGeorge
George's house
(666) 666-6666
[email protected]
25
51234.56
12/4/2004
vehicle
bTim
Tim's house
(111) 111-1111
[email protected]
bicycle
bJim
Jim's house
(555) 555-5555
[email protected]
5
american car
bJohn
John's house
(888) 888-8888
[email protected]
true
green
false
true
car
cKen
Ken's house
(999) 999-9999
[email protected]
false
orange
foreign car
cMario
Mario's house
(777) 777-7777
[email protected]
false
black
Italy
4415.91
american car
gSam
Sam's house
(333) 333-3333
[email protected]
false
blue
true
false
il est intéressant combien de « essayer au lieu » suggestions sont affichés avant que quelqu'un explique la e réel rror. – Tomalak
@Tomalak, La question dit, "Je comprends que j ++ est ce qui ne va pas, mais comment est-ce que je suis censé parcourir le tableau de chaînes afin que je puisse lire chaque ligne et créer les objets appropriés?" – strager
@strager: Vrai, mais je doute que cette ligne était destinée à être une demande d'alternatives. Tout le message a "pourquoi ai-je cette exception?" écrit partout. – Tomalak