Я новичок в программировании, и мне нужна помощь. Я должен сделать свой собственный метод проверки, если один массив имеет подпоследовательность к другому. Значение, если первый массив равен {1, 2, 3, 4, 5}, а второй - {1, 2, 3}, второй - подпоследовательность первого. Однако если первый из них {1, 2, 3, 4, 5}, а второй - {1, 4, 5}, это не подпоследовательность, поэтому вторая должна быть также в порядке.Сортировка массива с помощью ошибки метода Java
Я попытался сделать это таким образом через строки:
private static boolean subs(int[] array, int[] subsequence) {
String a = Arrays.toString(array);
String b = Arrays.toString(subsequence);
boolean c = false;
if (a.equals(b)) {
return true;
}
for (int i = 0; i < a.length(); i++) {
if (!(b.equals(a.substring(i, b.length() + i)))) {
c = false;
} else {
c = true;
break;
}
}
if (c == true) {
return true;
} else {
return false;
}
}
Однако я получаю 3 ошибки, вот PrintScreen:
А вот как я Тестирование метод:
int[] fArray = { 1, 2, 3, 4, 5 };
int[] tempArray = { 2, 3, 4 };
System.out.println(subs(fArray, tempArray));
Я знаю, что, возможно, от ошибок, поэтому поразил меня этим.
Пожалуйста, пост ошибки в вопросе, нет внешняя ссылка. Вы перешли код в отладчике? Исключение совершенно очевидно, вы превышаете границы строкового индекса. Таким образом, «b.length() + i», скорее всего, проблема. – OldProgrammer
Почему вы не сравниваете целые массивы напрямую, а не конвертируете их в строки? – thatguy
Потому что я сосать в массивах, и это была просто интересная идея, поэтому я попробовал. – Sevajper