首页 > 解决方案 > JAVA匹配字符串数组到双数组

问题描述

我在完成我正在处理的 java 项目的某个部分时遇到了麻烦。

这些是我制作的数组:

double [][] amortDB = new double[1000][4];

String [][] nameTable = new String[1000][6];

这些是说明:您将客户 ID 号、名字、姓氏、地址、手机号码和年龄存储在一个二维字符串数组中。

您将客户 ID 号、贷款金额和贷款利率(作为 #.# 数字)以及所需的每月付款金额存储在一个二维双数组中

请注意,这里的想法是这两个数组“同步”起来。信息数组中的第一个客户对应贷款信息数组中的第一个客户,以此类推

所以我遇到的麻烦是将每个数组的第一个位置相互匹配,因为客户 ID 应该在两者中匹配。用户应该能够使用扫描仪输入为两个数组中的每个要求输入任何字符串或双精度。我只是迷失了如何将双数组匹配到字符串数组?然后在匹配客户 ID 后,他们应该能够从该客户下输入的任何内容调用其他信息。

任何帮助是极大的赞赏!

标签: javaarrays

解决方案


你的意思是这样的吗?有更优雅的方法可以解决这个问题,但作为一个基本示例,它可以工作。

    Map<Integer, Integer> idPositionMap = new HashMap<>();
    for (int nameTableIndex = 0; nameTableIndex < nameTable.length; nameTableIndex++) {
        String id = nameTable[nameTableIndex][0];
        if (id != null) {
            double nameTableId = Double.valueOf(id); // Acutal conversion of String to double.
            int amortDbIndex = findAmortDbIdIndex(amortDB, nameTableId);
            if (amortDbIndex != -1) {
                idPositionMap.put(nameTableIndex, amortDbIndex);
            }
        }
    }
    idPositionMap.forEach((nameTableIndex, amortDbIndex) -> System.out.println("Index at nameTable: " + nameTableIndex + " Index at amortDb: " + amortDbIndex));

    private static int findAmortDbIdIndex(double[][] amortDb, double searchId) {
    for (int amortDbIndex = 0; amortDbIndex < amortDb.length; amortDbIndex++) {
        double id = amortDb[amortDbIndex][0];
        if (id != 0 && id == searchId) {
            return amortDbIndex;
        }
    }
    return -1;
}

每个 Id 的行位置存储在内部,idPositionMap以 nameTable 的 id 的位置为键,在 amortDb 中相同的 id 的匹配位置。


推荐阅读