我想自学java,下面的代码不能编译。
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Strings> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
cars.set(2, "Maruthi");
System.out.println(cars);
System.out.println(cars.size());
for (int i = 0; i < cars.size(); i++) {
System.out.print(cars.get(i));
}
System.out.print("Names: ");
ArrayList<Strings> names = new ArrayList<String>();
Scanner input = new Scanner();
for(int j = 0; j < 5; i++){
cars.set(i,input.nextLine());
}
System.out.println(names);
}
}
上面的代码给了我这个错误.我无法在代码中找到问题所在。
首先你的数组列表参数必须是String而不是Strings,然后在你的第二个for循环中,你将变量从j切换到i,for循环变量只能在循环内访问。而且你的扫描器也会摄入一个paremeter,如果从控制台获取输入,那么就做
Scanner input = new Scanner(System.in);
这里是可编译的代码。它可以工作,但在执行过程中仍然会抛出一个异常,你需要处理这个异常。
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
cars.set(2, "Maruthi");
System.out.println(cars);
System.out.println(cars.size());
for (int i = 0; i < cars.size(); i++) {
System.out.print(cars.get(i));
}
System.out.print("Names: ");
ArrayList<String> names = new ArrayList<String>();
Scanner input = new Scanner(System.in);
for(int j = 0; j < 5; j++){
cars.set(j,input.nextLine());
}
System.out.println(names);
}
}