Java.lang.ArrayIndexOutOfBoundsException: индекс 1 выходит за пределы для длины 1, получена ошибка, и невозможно подтверJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java.lang.ArrayIndexOutOfBoundsException: индекс 1 выходит за пределы для длины 1, получена ошибка, и невозможно подтвер

Сообщение Anonymous »

Я понимаю, что это сообщение об ошибке указывает на то, что я пытаюсь получить доступ к определенному элементу массива через индекс, которого нет, или это недопустимый элемент, пытающийся получить доступ за пределами длины в строке. Однако мне не удалось подтвердить, где именно это происходит в моем коде, с помощью информации, предоставленной из сообщения об ошибке:

Код: Выделить всё

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at Week3.luis_ramirez_GamesReport.readWrite(luis_ramirez_GamesReport.java:63)
at Week3.luis_ramirez_GamesReport.main(luis_ramirez_GamesReport.java:30)
Я просмотрел предыдущие вопросы по этому поводу, но мои форматы кода не похожи на другие, которые были опубликованы. Я попытался изменить порядок вывода, но, поскольку нужный результат уже печатается, я прекратил это делать. Я также пытался изменить строку

Код: Выделить всё

String[] ints_only = Arrays.copyOfRange(record, 1, record.length);
значению 0 вместо 1.
Вот мой код:

Код: Выделить всё

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class luis_ramirez_GamesReport {

public static void main(String[] args) throws IOException
{
{
File fileName = new File("/Users/luisramirez/eclipse-workspace/GameScores.txt");
readWrite(fileName);
addGamer(fileName, "Jimmy", "189", "190", "197", "199", "198", "193", "199", "199", "188", "196");
readWrite2(fileName);}
}
private static void readWrite(File fileName) throws IOException {

if (fileName.exists())
{
BufferedReader br = null;
String line = "";
String csvSplitBy = ",";
int recordCount = 0;
//String number ="167";
//int result = Integer.parseInt(number);
br = new BufferedReader(new FileReader(fileName));

System.out.println("-----------------------------------------------------------------------------------------------");
System.out.println("Games Report");
System.out.println("-----------------------------------------------------------------------------------------------");
System.out.println("Gamer    1       2       3       4       5       6       7       8       9       10     Total");
System.out.println("-----------------------------------------------------------------------------------------------");

while ((line = br.readLine()) != null)
{
String[] record = line.split(csvSplitBy);
String[] ints_only = Arrays.copyOfRange(record, 1, record.length);
List recordAsInts = Arrays.stream(ints_only)
.map(str -> str.strip())
.map(Integer::parseInt)
.collect(Collectors.toList());
int sum = recordAsInts.stream().reduce(Integer::sum).orElse(0);
System.out.println(record[0] + "\t"
+ record[1] + (record[1].length() > 7 ? "\t" : "\t")
+ record[2] + (record[2].length() > 7 ? "\t" : "\t")
+ record[3] + (record[3].length() > 7 ? "\t" : "\t")
+ record[4] + (record[4].length() > 7 ? "\t" : "\t")
+ record[5] + (record[5].length() > 7 ? "\t" : "\t")
+ record[6] + (record[6].length() > 7 ? "\t" : "\t")
+ record[7] + (record[7].length() > 7 ? "\t" : "\t")
+ record[8] + (record[8].length() > 7 ? "\t" : "\t")
+ record[9] + (record[9].length() > 7 ? "\t" : "\t")
+ record[10] + (record[10].length() > 7 ? "\t" : "\t")
+ sum);
recordCount++;

}

System.out.println("----------------------------------------------------------------------------------------------");
System.out.printf("# of Gamers: %d%n",recordCount);
System.out.println("Top Gamer: ");
System.out.println("----------------------------------------------------------------------------------------------");
br.close();
}
Вот ссылка на изображение моего вывода:
[img]https://i.sstatic .net/q9AP4.jpg[/img]

Вот строка 30: readWrite(fileName);
Вот строка 63: + запись[1] + (запись[1].длина() > 7 ? "\t" : "\t")

Подробнее здесь: https://stackoverflow.com/questions/709 ... ngth-1-err
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»