0

我需要计算两个位置之间的价格,我有以下数据结构来保存区域之间的价格:

                  Washington  Niagra Falls  New York
Washington        0,          6.30,         8.30
Niagra Falls      5.30,       0   ,         5.30
New York          3.20,       4.30,         0

如何创建一个方法,它将根据字符串 X 和字符串 Y 位置在二维数组中查找值?

这是我到目前为止的代码:

String Location X = "Washington";
String Location Y = "New York";

String XY = {"Washington", "Niagara Falls", "New York"}; 
//Cost of the trips
double[][] prices = { 
    {0,    6.30, 8.30},
    {5.30, 0,    5.30},
    {3.20, 4.30, 0   },
};

在上述情况下,华盛顿 -> 纽约应该是8.30.

方法应该是这样的:

public double calculateFees(String X, String Y){
    //add code here.

    double fares;
 return fares;
}
4

2 回答 2

2

您需要弄清楚将应用哪些数组索引。

public double calculateFees(String X, String Y){
    int xArrIdx=0;
    for(xArrIdx=0; xArrIdx<XY.length; xArrIdx++){
        if(XY[xArrIdx].equals(X)) break;

    }
    for(yArrIdx=0; yArrIdx<XY.length; yArrIdx++){
        if(XY[yArrIdx].equals(Y)) break;

    }

    return prices[xArrIdx][yArrIdx];
}  

让这个处理数组中XY不在数组中的情况留给读者作为练习。

prices还要确保XY可以从calculateFees. XY也应该是一个String[],而不是一个String

于 2013-07-29T01:49:47.200 回答
0

获取Xfrom的索引XY,比如i

获取Yfrom的索引XY,比如说j

使用 , 获取票价prices[i][j]

您可能需要对给定字符串的数组 XY 测试循环两次。您可以改为使用从 String 到 Integer 索引的 HashMap 来节省时间。

于 2013-07-29T01:48:59.470 回答