为了便于自己理解,加了很多注释性的文字。
package disanzhou;
import java.util.ArrayList;
import java.util.Scanner;
class City{
private ArrayList<String> city = new ArrayList<String>();
private int[][] distance;
Scanner in = new Scanner(System.in);
public City() {
System.out.print("录入城市名字:");
String s = in.next(); //读入第一个城市名字
while(true) {
if (s.equals("###")) { //读到名字为“###”时,表示城市名字输入结束
break;
} else {
city.add(s); //add()函数增加city里面的字符变量
}
s = in.next(); //继续读入下一个城市名字
}
System.out.print("录入距离:");
distance = new int[city.size()][city.size()]; //size()函数求的是city里面的元素个数
int mile = 0;
for(int j=0; j<city.size(); j++) {
for(int i=0; i<city.size(); i++) {
mile = in.nextInt();
distance[i][j] = mile;
}
}
}
public int GetDistance() {
int start;
int end;
System.out.print("输入出发城市:");
start = city.indexOf(in.next()); //查找出发城市
System.out.print("输入结束城市:");
end = city.indexOf(in.next()); //查找结束城市
return distance[start][end];
}
}
public class FindDistance {
public static void main(String[] args) {
City city = new City();
System.out.println("两个城市距离:"+city.GetDistance());
}
}