2017-09-22 56 views
-3
import java.util.Scanner; 
public class Singleton{ 
    public static void main(String args[]){ 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter number of students: "); 
     int number = input.nextInt(); 
     String names[] = new String[number]; 
     for(int counter = 0; counter < 100; counter++){ 
      System.out.print("Enter name: "); 
      names[counter] = input.nextLine(); 
      names[counter] = names[counter].toLowerCase(); 
     } 
     int grades[] = new int[names.length]; 
     int count = 0; 
     for(String x: names){ 
      System.out.print(x + "'s grade: "); 
      grades[count] = input.nextInt(); 
      count++; 
     } 
     count = 0; 
     for(String x: names){ 
      System.out.println(x + "'s grade is " + grades[count] + "."); 
      count++; 
     } 
    } 
} 

你能幫我弄點東西嗎,這樣我就可以在數組中放入任意數量的值而不用問有多少學生呢?這個數組的大小取決於我輸入的內容

+0

你能夠使用ArrayList嗎? [鏈接](https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html) –

+0

我是新的,所以我不知道如何使用它們,以便你能告訴我怎麼樣如果他們能幫助我? – Incognelo

+0

停止使用數組。開始使用集合(例如,LinkedList)。 – DwB

回答

2

如果你想要一個數組,你可以添加一個可變數目的元素你可以使用ArrayList。即

import java.util.ArrayList; 

    ArrayList<String> names = new ArrayList<String>(); 
    for(int counter = 0; counter < 100; counter++){ 
     System.out.print("Enter name: "); 
     names.add(input.nextLine()); 
    } 
0

Java有固定長度的數組,並且不可能動態地改變數組的大小。要做你需要的就是java.util.ArrayList類。

(看Reginol_Blindhop的答案。無論是ArrayList的或LinkedList的代碼是一樣的)。

但是如果你需要數組可以用+1尺寸爲每一個輸入創建新的數組,複製有以前的值,並把新進入最後一個元素。要做到這一點,有System.arraycopy方法。

代碼可能看起來像:

  String[] names = new String[1]; 

     for(int counter = 0; counter < 100; counter++){ 
       System.out.print("Enter name: "); 
       String nextName = input.nextLine(); 

       String[] tempNames = new String[names.length + 1]; 
       System.arraycopy(names, 0, tempNames, 0, names.length); 
       tempNames[names.length] = nextName; 
       names = tempNames; 
     } 

PS。當然,對於任何解決方案,最好是使用while循環和檢查用戶是否通過將一些特別的東西,如「退出」完成輸入,「結束」,「再見」,「:q」或任何你想。

0

您應該使用一個List這樣的事情,而不是一個數組。作爲一般的經驗法則,當您不知道將要添加到數組中的元素數量時,請使用List代替。大多數人可能會通過使用ArrayList來解決這個問題。

相關問題