Мне сложно понять, почему работают только части моего кода. Я извлекаю из файла txt данные, которые отвечают на вопросы, которые пользователь предлагает ответить. это моя ошибка:Статистическое приложение Titanic
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at TestTitanic.filler(TestTitanic.java:13) at TestTitanic.main(TestTitanic.java:41)
C:\Users\Jznica Sabatini\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53:
Java returned: 1 BUILD FAILED (total time: 0 seconds)
Вот строки 13, 41, и я кладу в 53, хотя я не уверен, что это ошибка.
line 13 String content = new Scanner(new File(args[0]))
line 41 runner.filler(args);
Так у меня есть тестовый класс (где приведенные выше примеры являются из, класса титанового, и хотя, вероятно, нет необходимости, вспомогательный класса для Титаника с распространяющим методом, но все это компилируется, его только что, когда i компилируется в строке cmd, а тестовый класс работает с файлом titanic.txt, так как cmd ln аргументирует только 3 из 7 вопросов, когда пользователь запрашивает ответ на самом деле.
Ниже приведен мой класс TestTitanic. Я использовал netbeans и позволяя изменить его с помощью предложений, и теперь я даже не получаю свой cmd ln, чтобы печатать вопросы или предлагать пользователю вводить их ответ. В сетевых компонентах он говорит, что мой тестовый класс - это то, где мои ошибки, но с учетом числа из строка, ошибка в моей строке cmd, я знаю, что это мой оригинальный родительский класс Titanic, но пока я начну с меньших ошибок.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class TestTitanic {
// Method that builds a 2D array from the txt file
public void filler(String[] args) {
// Try-catch is needed for passing args to method
try {
// Turns the txt file into one large string
String content = new Scanner(new File(args[0]));
.useDelimiter("\\Z") // To the end of the file
.next();
String[] rows = content.split("\n"); // Breaks up by new line
// Creates a 2D array as "long" as the input file
String[][] titanic = new String[rows.length][];
// Fills the 2D array
for (int i = 0; i < rows.length; i++) {
titanic[i] = rows[i].split("\\t");
}
// Creates a new Titanic object
Titanic titanicObject = new Titanic(titanic);
// Calls the passToMenu method from Titanic class
titanicObject.passToMenu();
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}
public static void main(String[] args) {
// Create an object from this class
TestTitanic runner = new TestTitanic();
// Calls the program method to fill the array
Runnable runnable = new Runnable() {
@Override
public void run() {
runner.filler(args);
}
};
}
}
Линия 13 do В конце концов нет точки с запятой! Кроме того, приложите свои строки кода к
and
. –Любая причина, почему вы делаете новую тему внутри своей основной темы? Кажется, вы не намерены многопоточно. Кроме того: «... я использовал netbeans и позволяю менять его с помощью предложений» <- в этом заключается безумие, только принимайте предложения, если вы их понимаете. –
, поэтому я исправил его и вернусь к исходной проблеме ввода текста в свой ответ на вопрос и получения нескольких ошибок из-за ошибок в зависимости от того, на какой вопрос я хочу ответить.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at Titanic.perishedPercent(Titanic.java:40) //line 40 if (row[1].equals("0")) {
Это всего лишь один из многих примеров только одной ошибки, но опять же, если вы хотите увидеть больше, я буду более чем счастлив предоставить его для лучшего понимания. – 3monkeys1gorilla