如何将字符串(单词)添加到字符串 [] 数组?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,输入 [重复]的主要内容,如果未能解决你的问题,请参考以下文章