2016-02-27 121 views
-1

所以,你好。我很抱歉,如果这个问题已经得到解答,但我没有发现任何问题。如何添加字符串(字)到String []数组?Java,输入

想象一下,有一个人将他的名字输入到控制台中,系统在数组“姓名”中查找他的姓名。如果他的名字是在阵列中,系统打印是的,并将其发送给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); 
     } 
    } 


} 
+0

另一个很好的解释:HTTP ://stackoverflow.com/a/1624163/1393766 – Pshemo

回答

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()]); 
+0

谢谢。这很有用,现在代码没有显示任何异常,但是数组的长度仍然是7.在哪里添加字符串?我想,我的数组会得到新的字符串,并且它的长度会更大。如果开始时阵列的长度是7,应该是8?否? –

+0

@LameLane你不能调整数组的大小(这也是'Arrays.asList'返回的列表中不支持'add'操作的原因)。我会在每个地方使用'List',但我添加了一些代码来创建一个包含List中元素的新数组。 – fabian

+0

谢谢,你帮我提供建议;) –

1

这是不可能增加值ArrayList中由全光照创建摹Arrays.asList(array)

点击链接查看源代码

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

你可以做的是使的ArrayList新的副本,并将它们全部

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

为什么要投票? – Pragnani

+2

由于“没有添加方法”这个理由,我之前就低估了它,这是错误的。它确实有这些方法,但因为数组不能调整大小,所以不支持它们。我之前没有发表评论,因为我一直在寻找适当的复本(抱歉延误)。 – Pshemo

+1

@Pshemo我的意思是添加一些像'它没有添加方法实现',但我错过了。也意味着他们没有提供实现,因为数组不能调整大小。 – Pragnani