有没有人可以帮助我使用java程序我花了一个小时进行故障排除? 我将文件读入字符串数组没有问题,但我似乎不知道如何使用switch或if语句将每行存储在一个对象数组中。
编写一个带有读取文件的主应用程序(从命令行)并用新车(params),新车(params),新美国车(params)新外国车填充车型[]的数组(params),新卡车(params),新自行车(params)等,具体取决于识别每条记录的第一行。 数据样本:
车辆
eRob
罗伯的房子
(987)654-3210
Frob@rob.com卡车
aDougy
道格的房子
(123)456-7890
hdoug@doug.com
30个
61234.56
8/10/2003自行车
fTom
汤姆的房子
(246)810-1214
Gtom@tom.com
7
如果您发现我的代码有什么问题,请指出:
public static void main( String[] args) throws Exception
{
int traceOfArray = 100;
Vehicle[] vehicle = new Vehicle[traceOfArray];
File file = null;
file = new File(args[0]);
FileReader Fr = new FileReader(file); //read file.
BufferedReader Br = new BufferedReader(Fr);
String read = Br.readLine();
try
{
while (read != null)
{
char x = read.charAt(0);
if(x=='v')
vehicle[0] = new Vehicle(Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine());
else if(x=='c')
vehicle[1] = new Car(Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine());
...
答案 0 :(得分:2)
有一点是ArrayLists与数组不同。
arrayList(i++) = new vehicle (Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine());
应该是
arrayList.add(new vehicle (Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine()));
如果arrayList确实是vehicle[]
,那么你需要使用方括号,而不是括号:
arrayList[i++] = new vehicle (Br.readLine(), Br.readLine(), Br.readLine(), Br.readLine());
此外,通常情况下,班级名称以大写字母开头(车辆,而非车辆)
答案 1 :(得分:0)
您也可以将BR对象作为参数提供给类,并让它确定需要多少行:
e.g。
case 'v':
new vehicle (Br)
...