題目內容:java
下圖爲國內主要城市之間的公路里程:數組
你的程序要讀入這樣的一張表,而後,根據輸入的兩個城市的名稱,給出這兩個城市之間的里程。函數
注意:任何兩個城市之間的里程都已經給出,不須要計算經第三地中轉。spa
注意:你並不須要去錄入上圖的數據,數據是在程序輸入中給的。對象
輸入格式:blog
首先,你會讀到若干個城市的名字。每一個名字都只是一個英文單詞,中間不含空格或其餘符號。當讀到名字爲「###」(三個#號)時,表示城市名字輸入結束,###並非一個城市的名字。若是記讀到的城市名字的數量爲n。內存
而後,你會讀到nxn的一個整數矩陣。第一行的每個數字,表示上述城市名單中第一個城市依次到另外一個城市之間的里程。表中同一個城市之間的里程爲0。ci
最後,你會讀到兩個城市的名字。get
輸出格式:it
輸出這兩個城市之間的距離。
輸入樣例:
Hagzou Hugzou Jigxng ###
0 1108 708
1108 0 994
708 994 0
Hagzou Jigxng
輸出樣例:
708
import java.util.ArrayList;//引入容器 import java.util.Scanner;//引入掃描函數 //主類 public class Main{ public static void main(String[] args) { City city = new City();//新建City類對象city city.setDistance();//調用setDistance方法設置距離 city.getDistance();//調用getDistance方法輸出距離 } } //City類 class City{ private ArrayList<String> city;//容器,存儲城市名 private int distance[][];//二維數組,存儲輸入的距離矩陣 Scanner in = new Scanner(System.in); //構造函數,初始化 public City() { city=new ArrayList<String>(); String ctName=in.next();//輸入城市名 //把城市名添加進容器 while(true) { if(ctName.equals("###")) { break;//若是輸入的是「###」,中止添加城市名 } city.add(ctName);//添加 ctName=in.next();//輸入 } //若輸入n個城市,創建n*n大小距離矩陣 distance=new int[city.size()][city.size()]; } //初始化距離矩陣 public void setDistance() { int mile=0; for(int i=0;i<distance.length;i++) {//行 for(int j=0;j<distance[i].length;j++) {//列 mile=in.nextInt();//輸入距離 distance[i][j]=mile;//初始化對應座標距離矩陣 } } } //獲得兩城市之間的距離 public void getDistance() { //輸入起始城市名,並獲取其在容器中的座標 int start=city.indexOf(in.next()); //輸入終點城市名,並獲取其在容器中的座標 int end=city.indexOf(in.next()); //根據起始和終點座標在距離矩陣中找到兩城市之間的距離 System.out.println(distance[start][end]); } }