



string.split("\n") возвращает массив String.string.split("\n")[1] предполагает, что возвращаемое значение представляет собой массив, состоящий как минимум из двух элементов.ArrayIndexOutOfBoundsException указывает, что массив имеет менее двух элементов.
Если вы хотите предотвратить получение этого исключения, вам нужно проверить длину массива. Что-то типа...
String[] parts = string.split("\n");
if (parts.length > 1) {
System.out.println(parts[1]);
}
else {
System.out.println("Less than 2 elements.");
}
Первый элемент массива имеет индекс 0. Не думайте, что всегда есть два элемента. Последний индекс в массиве имеет индекс (длина - 1).
Вы можете легко использовать Попробуйте поймать, чтобы избежать получения этого сообщения:
try{
string.split("\n")[1];
}catch(ArrayIndexOutOfBoundsException e){
//here for example you can
//print an error message
}
Индексация начинается с 0, поэтому, индексируя с 1, вы пытаетесь получить второй элемент массива, который в вашем случае является потенциальной второй строкой текста. У вас такая ошибка, потому что у вас может не быть разрыва строки в вашей строке, чтобы избежать такого исключения, вы можете либо использовать блок try catch (мне не нравится этот метод в вашем случае), либо просто проверить, есть ли разрыв строки в вашу строку, вы можете сделать это так:
if (yourString.contains("\n")){
//split your string and do the work
}
или даже проверив длину частей из-за раскола:
String[] parts = yourString.split("\n");
if (parts.length>=2){
//do the work
}
Если вы хотите использовать блок try-catch:
try {
String thisPart = yourString.split("\n")[1];
}
catch(ArrayIndexOutOfBoundsException e) {
// Handle the ArrayIndexOutOfBoundsException case
}
// continue your work
ты ищешь
String[] splitted = string.split("\n"); if (splitted.length > 1) { ... }?