2016-02-27 153 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