Проверьте, является ли String [index] пустым, прежде чем выдавать исключение ArrayIndexOutOfBounds - PullRequest
0 голосов
/ 26 января 2019

Это, вероятно, глупый вопрос, но я что-то упустил и просто не могу понять, что ... Ищет разумный способ проверить, существует ли данный индекс в массиве String[]

Строка является представлением пары K, V, но иногда V может быть пустым, поэтому возможны следующие примеры строк:

Foo1: Bla1
Foo2: Bla2
Foo3:
Foo4: Bla4

public void constructPair(String string) {
    String[] split = string.split(":");
    ...
    if(split[index] != null) { } // nope
    if(!split[index].isEmpty() || !split[index].isBlank() { } //nope
    if(split[index].length() > 1) { } // nope
    ...
}

Или я должен просто обернуть все это в try {} catch() {}? заблокировать и разобраться с исключением соответственно?

Редактировать: Для ясности 'index' это просто псевдо не фактическое имя переменной

1 Ответ

0 голосов
/ 26 января 2019

Индексы массива варьируются от 0 до length-1, и они всегда существуют. Пока index >= 0 и index < split.length, split[index] не будет выбрасывать ArrayIndexOutOfBoundsException.

Поэтому просто добавьте оператор if, чтобы проверить это:

if(index >=0 && index < split.length) {
    [...]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...