Nehmen Sie eine einzige Zeile, Eingabe von zahlen und die Speicherung in ein array

import java.util.Scanner;

class HistogramChart
{
   public static void main(String[] args)
   {
      Scanner scan = new Scanner(System.in);

      System.out.println("Please enter the population of data: ");
      int populationOfData = scan.nextInt();

      System.out.println("Please enter data separated by spaces: ");
      String data = scan.next();

      int indexWhiteSpace = data.indexOf(" ");

      int[] dataArray = new int[populationOfData];
      int tempInt = 0;

      for(int index = 0; index < populationOfData; index++)
      {
         String tempString = data.substring(0, indexWhiteSpace);
         data = data.substring(indexWhiteSpace+1, data.length());
         tempInt = Integer.parseInt(tempString);

         dataArray[index] = tempInt;
         indexWhiteSpace = data.indexOf(" ");
      }
      System.out.println(dataArray[0]);   
   }
}

Ich fest: es gibt noch nichts zu drucken Sie das gesamte array, als ich versuche nur, um es zu bekommen, um alles drucken, aber das ist ständig Druck die folgenden Fehler:

"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
bei java.lang.String.substring(String.java:1954)
bei HistogramChart.main(HistogramChart.java:22)
"
Ich kann nicht herausfinden, warum dies so ist, sagen diese.
Bitte um Hilfe!!

  • Es sagt so, weil Sie versuchen, Zugriff auf etwas, das außerhalb der Grenzen des Arrays. Ohne Blick auf deinen code, bitte helfen Sie sich selbst durch das Debuggen dieser. Setzen Sie einen Haltepunkt und Schritt für Schritt durch und sehen, wo es abstürzt.
  • Scanner.Next() liefert dann nur das erste Wort. Dies bedeutet, dass Daten.IndexOf(" ") werden -1, geben Sie die SystemIndexOutOfBoundsException.
InformationsquelleAutor Kyle Goodwin | 2014-11-15
Schreibe einen Kommentar