Java中的Int和String数组

0 java arrays

public class CHECK {
public CHECK(){
    String []wrkrs = {"?????", "????", "???????", "????????", "???", "????", "????", "????", "?????","??????"};
    int [] wrkrsPhone = {22626,22627,22628,22629,22630,22631,22632,22633,22634,22635};
    String a = JOptionPane.showInputDialog(null, "Hello,friend!Do you wanna know, is that guy at work?Enter name:");


    if(Arrays.asList(wrkrs).contains(a)){
        JOptionPane.showMessageDialog(null, "That guy is at work!");
        JOptionPane.showMessageDialog(null, "calling " + wrkrsPhone[wrkrsPhone.toString().indexOf(a)]);
    }else{
        JOptionPane.showMessageDialog(null, "?????? ?????????? ???!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我有两个数组,包含整数和字符串.如您所见,我想将字符串数组中的元素数(例如,wrkrs number 3)添加到int数组中,称为wrkrs phone.我该怎么做?我尝试过IndexOf,但它不起作用.

输出,我想要的是:

Enter name:
???
That guy is at work!
Calling ??? + wrkrsPhone(???).
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 5

一个更好的解决方案是拥有一个包含工人姓名和电话号码的工人类.

然后,您可以使用a HashMap<String,Worker>而不是数组来存储数据.

这使搜索更有效:

Map<String,Worker> workersMap = new HashMap<>();
workersMap.put ("?????", new Worker ("?????", 22626));
...
Worker worker = workersMap.get(a);
if (worker != null) {
    call (worker.getPhone()); // or do whatever you want to do with the phone number
}
Run Code Online (Sandbox Code Playgroud)

这比Arrays.asList(wrkrs).contains(a)在List上执行线性搜索更有效.