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

Posted

技术标签:

【中文标题】如何将字符串(单词)添加到字符串 [] 数组?Java,输入 [重复]【英文标题】:How to add string(word) to String[]array?Java, input [duplicate] 【发布时间】:2016-06-10 17:24:50 【问题描述】:

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

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

感谢您的帮助!)

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);
        
    



【问题讨论】:

另一个很好的解释:***.com/a/1624163/1393766 【参考方案1】:

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

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

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

数组不支持调整大小(见Java dynamic array sizes?):如果你需要“修改”一个数组的长度,你需要用一个新的来替换它,这可以用这段代码来完成:

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

【讨论】:

谢谢。这很有用,现在代码显示没有异常,但数组的长度仍然是 7。添加字符串在哪里?我想,我的数组会得到新的字符串,它的长度会更大。如果一开始数组的长度是7,应该是8?否? @LameLane 您无法调整数组大小(这也是Arrays.asList 返回的列表中不支持add 操作的原因)。我会在任何地方都使用List,但我添加了一些代码来创建一个包含List 中元素的新数组。 谢谢,您的建议帮助了我;)【参考方案2】:

无法将值添加到使用Arrays.asList(array) 创建的ArrayList

点击链接查看源码

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

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

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

【讨论】:

我之前否决了它,因为“它没有添加方法”的原因是完全错误的。它确实有这些方法,但由于数组无法调整大小,因此不支持它们。我之前没有发表评论,因为我首先要寻找合适的副本(抱歉耽搁了)。 @Pshemo 我的意思是添加类似It doesn't have add method implementations 的内容,但我错过了。也意味着他们没有提供实现,因为数组不可调整大小。

以上是关于如何将字符串(单词)添加到字符串 [] 数组?Java,输入 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我如何创建将单词添加到字符串python的循环

存储动态字符串

如何将数组转换为逗号分隔的单词字符串? [复制]

使用 jQuery 在字符串中的每个单词前添加一个“+”

读取单词并将它们存储到数组中

从字符串中提取单词并将它们移动到数组中