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]);
}
}
Я понимаю, что еще ничего не распечатать весь массив, поскольку я просто пытаюсь его распечатать, но это постоянно печатает следующие ошибки:Возьмите один линейный ввод чисел и сохраните его в массиве
«Исключение в потоке„основной“java.lang.StringIndexOutOfBoundsException: индекс строка из диапазона: -1 в java.lang.String.substring (String.java:1954) в HistogramChart.main (HistogramChart.java:22) « Я не могу понять, почему это так. Пожалуйста, помогите!
Это говорит так, потому что вы пытаетесь получить доступ к чему-то вне границ массива. Не рассматривая свой код, пожалуйста, помогите себе, отлаживая это. Поместите контрольную точку и пройдите и посмотрите, где она сработает. – mattias
Scanner.Next() вернет только первое слово. Это означает, что data.IndexOf ("") будет -1, что даст вам исключение SystemIndexOutOfBoundsException. – Simon