比较两个不同类型的数组,在相同“槽位”上打印元素 Java

3

我正在比较两个数组,一个是整数数组,另一个是字符串。根据用户的输入,我想要比较这两个数组。我需要做的是将用户的输入与第一个整数数组进行比较,然后计算在同一位置的字符串数组元素。然后根据第二个数组打印出结果。例如,当我输入12时,我会得到Bob,或者输入21时,我会得到Andrea。以下是示例代码。我已经完成了与第一个数组的比较(我有用户输入,找到它在整数数组中的位置-循环,但我就是不知道如何比较第二个数组)。

int[] number = {12, 15, 19, 21}
String[] character = {bob, sally, james, andrea} 

我应该只需比较这两个数组,然后将其保存在一个新变量中:

number = character

那么要打印新变量的值吗?

非常感谢您的帮助。我已经到处寻找这个答案了。主要在这个网站上花费了一天半的时间。


2
你难道没有先自己尝试过吗? - Metalhead
是的,相当多。这就是我在问的原因。提示很好,我喜欢基于方向的探索。 - Acronis
为什么不使用数字到字符串的映射(Map)呢? - Vikdor
2个回答

2
你可以在这里使用Map。实例化并填充Map:
Map<Integer, String> numberToNameMap = new HashMap<Integer, String>();
numberToNameMap.put(12, "bob");
//...

然后进行查找:

String name = numberToNameMap.get(inputNumber);

1

您不需要将任何内容与第二个数组进行比较:一旦您在第一个数组中找到匹配元素的索引,只需使用该索引对第二个数组进行操作即可。就是这样简单!

int[] number = {12, 15, 19, 21};
String[] character = {"bob", "sally", "james", "andrea"};
int userInput = ... // <<== You know how to do all that 
for (int i = 0 ; i != number.length ; i++) {
    if (number[i] == userInput) {
        // Element at index i is matching:
        System.out.println(character[i]);
        break;
    }
}

现在我尝试编译时出现了以下错误:错误:不可比较的类型:int和java.lang.String - Acronis
这是完整的代码:'import jpb.*;'public class comparison { public static void main(String [] args) { //提示用户输入SSN并修剪输入 SimpleIO.prompt("输入12、15、19、21:"); String userInput = SimpleIO.readLine();int[] number = {12, 15, 19, 21}; String[] character = {"bob", "sally", "james", "andrea"};for (int i = 0 ; i != number.length ; i++) { if (number[i] == character[i]) { // 索引i处的元素匹配: System.out.println(character[i]); break; }} }} - Acronis
@Acronis,那是因为你正试图比较字符串值和整数。 - sasankad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接