如何将字符串(单词)添加到String[]数组?Java,输入

How to add string(word) to String[]array?Java, input

大家好。如果该问题已得到解答,我深表歉意,但我没有找到适合我的问题的答案。

想象一下,有一个人在控制台中输入他的名字,系统在数组 "names" 中查找他的名字。如果他的名字在数组中,系统会打印出是的并将其发送给 FBI,哈哈。 但是如果数组中没有他的名字,系统打印没有输入的名字,然后,需要将输入的名字添加到数组中。 对于 FBI-base 更广泛) 这是我的代码,如果在数组中输入了名称,我就可以工作。 但是它显示异常,没有名字。

感谢您的帮助!)

import java.util.Arrays;

import java.util.List;
import java.util.Scanner;

public class FBI {
    String[] names = {"Вася", "Денис", "Петя", "Анатолий", "Евгений", "Саша", "Дима"};
    String s;
    Scanner scn = new Scanner(System.in);
    List<String> list = Arrays.asList(names);



    void Ss(String s2){
        System.out.println("Введите имя:");
        s2 = scn.nextLine();    
        s = s2;
    }

    public void IsThereIn(){
        if(list.contains(s)){
            System.out.println("Есть такой в базе!");
            FBI fb = new FBI();
            fb.SendToFBI();
            System.out.println("DONE!");
        }else{
            System.out.println("Такого нет!");
            list.add(s);

        }

    }
    public void SendToFBI(){
        System.out.println("Sending to FBI");
        for(int i = 1;i <=5;i++){
            System.out.println("На счёт " + i);
        }
    }


}

Arrays.asList 创建数组的 List view。您可以在不出现异常的情况下修改此列表的内容的唯一方法是使用 set 方法(或其他一些仅替换元素的方法)。您不能增加列表的大小。

如果你想要一个允许你添加新元素的列表,你应该使用 ArrayList:

List<String> list = new ArrayList<>(Arrays.asList(names));

Arrays do not support resizing (see Java dynamic array sizes?): 如果你需要"modify"一个数组的长度,你需要用一个新的替换它,这可以用这个来完成代码:

names = list.toArray(new String[list.size()]);

无法将值添加到使用 Arrays.asList(array)

创建的 ArrayList

点击link查看源代码

List<String> list = Arrays.asList(names);

您可以做的是制作 ArrayList 的新副本以及所有这些

List<String> list= new ArrayList<String>(list);