Я пытаюсь прочитать идентификатор пользователей и их тип ссылки из файла txt. Данные приведены в следующем формате.Как решить java.lang.ArrayIndexOutOfBoundsException error
SRC:aa
TGT:bb
VOT:1
SRC:cc
TGT:bb
VOT:-1
где индикаторы «SRC» и «TGT» идентификатора пользователей. В данных, некоторых пользователях идентификаторы являются пустыми, то есть пользователи не согласны раскрыть свою личность следующим образом:
SRC:
TGT:cc
VOT:-1
SRC:ff
TGT:bb
VOT:1
В этом случае, я хочу, чтобы дать им специальный идентификатор, «анонимным». Итак, я написал следующий код:
//Reading source
dataline = s.nextLine();
String[] line1parts = new String[2];
.
.
//split the line at ":"
line1parts = dataline.split(":");
//if the line has source
if (line1parts[0].trim().equals("SRC")){
//if the soruce name is empty
if (line1parts[1].isEmpty()) {
src = "anonymous";
System.out.print("src: " + src);
}
//if the source already integer id
else {
src = line1parts[1].trim();
System.out.print("src: " + src);
}
}
Программа показывает java.lang.ArrayIndexOutOfBoundsException
ошибку. Я также пробовал if (line1parts[1].equals("")
и if (line1parts[1].equals(null)
. Вероятно, для случая SRC: (when empty)
массив строк не создает никакого объекта (извините, если я ошибаюсь. Я очень новичок в java). Как назначить идентификатор пользователя, когда он пуст? Заранее спасибо.
Можете ли вы наметить линию, на которой происходит эта ошибка? Вы можете отредактировать свой пост. – Arc676
Вы проверили индекс '[0]' для того, чтобы данные существовали? –
Единственная причина в том, что 'line1Parts' имеет только 1 ячейку, вы можете заставить метод split вернуть 2 ячейки, указав это значение после String (второй параметр, целое число) – AxelH