2016-04-12 4 views
0

'da saklanabilir, böylece özel bir String [] teamName ;. Tek yapmak istediğim sadece bir kullanıcı tarafından bir String çıkışı kullanmak ve bu String'i String [] teamName; içine saklamaktır. TeamName [takım] alıyorum ve bunu = keyboard.nextLine() öğesine eşitliyorum, bu bana bir nullexpection hatası veriyor. niye ya? Buna hiçBir kullanıcı String çıkışı bir String [] dizisi

... ben ne var

özel String [] Takım adı; // sıfırlar tüm dizi deliklerle dolu olmasını for döngü içinde her takımın

public void enterInData() 
{ 
    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Enter number of teams:"); 
    numberOfTeams = keyboard.nextInt(); 

    System.out.println("Enter number of weeks:"); 
    numberOfWeeks = keyboard.nextInt(); 

    scores =new int [numberOfTeams][numberOfWeeks]; 
    // ************** Fill in Code *************** 
    // Allocate array memory for teamName to store the team names. 
    // Allocate array memory for scores (2 dimensional array) to store a 
    // score for each team for each week. 
     teamName = new String[4]; 
    for (int team = 0; team < numberOfTeams; team++) 
    { 
     System.out.println("Enter team name"); 

     // ************* Fill in Code ************** 
     // Read in Team name and store it in teamName 
     teamName = new String[team]; 
     teamName[team] = keyboard.nextLine(); 



     for (int week = 0; week < numberOfWeeks; week++) 
     { 
      System.out.println("Enter score for team "+ teamName[team]); 
      System.out.println("on week number " + (week+1)); 
      // ************ Fill in Code *************** 
      // Read in a score and store it in the proper spot in the scores array 
     scores[team][week] = keyboard.nextInt(); 
     } 

}

cevap

0

hat teamName = new String[team]; için bir girdi içerir. Zaten sahip olduğunuz her şeyi siliyorsunuz.

+0

yüzden Dizi bellek tahsis can Takım adı takım isimleri saklamak için nasıl. –

+0

Bu satırın silinmesi bir başlangıç ​​olur. Diziyi zaten ayırdınız. –

1

Boş bir işaretçi istisnası elde edersiniz, çünkü stringTeam dizisini döngü içinde yeniden bildirdiğinizde (gerekli değildir) değişken takımını dizinin boyutu olarak kullanırsınız. Döngünün ilk yinelemesinde bu değişkenin değeri 0'dır. 0 boyutunda boş bir dizi oluşturursunuz. Ne istiyorsun bir dize atamak basitçe:

teamName[team] = keyboard.nextLine();