为什么我的代码不能输出它应该输出的内容?二维数组和方法

问题描述 投票:0回答:1
import java.util.Scanner;

public class LabProgram {

    public static String getPhoneNumber(String[][] list, String name) {
        for (int i = 0; i < list.length; i++) {
            if (list[i][0].equals(name)) {
                return list[i][1];
            }
        }
        return "-1"; // Handle the case when the name is not found
    }

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);

        int numPairs = scnr.nextInt();

        String[][] list = new String[numPairs][2];

        for (int i = 0; i < numPairs; i++) {
            list[i][0] = scnr.next();
            list[i][1] = scnr.next(); 
        }

        String name = scnr.next();

        String phoneNumber = getPhoneNumber(list, name);
        System.out.println("Phone number for " + name + ": " + phoneNumber);
    }
}

输入: 3 乔,123-5432 琳达,983-4123 弗兰克,867-5309 弗兰克

我的输出: 你的程序没有产生输出

预期输出: 弗兰克:867-5309

我的代码获取用户输入,指示有多少对,然后获取对,最后输入是我需要输出的电话号码的名称。但无论出于何种原因,它都不会输出,也不会打印任何内容。是我的方法吗?

java methods
1个回答
1
投票

代码的核心部分可以通过基于这样的内容来修复:

    for (int i = 0; i < numPairs; i++) {
        String pair = scnr.next();
        list[i] = pair.split(",")
    }

'next' 读取下一个空格,因此它会将名称和编号作为一个字符串。 'split' 将该字符串拆分为逗号,返回(在本例中)一个 2 元素数组。

© www.soinside.com 2019 - 2024. All rights reserved.