Проверка действительного URL
У меня есть встроенный чек для действительного URL-адреса. Я вставил часть своего чека. Программа должна прочитать ранжированный список и затем распечатать / отсортировать / найти. Первая часть кода - моя проверка на действительный URL, вторая часть - вставка его в arrayList. Если я ввожу URL: https://www.ssa.gov/cgi-bin/popularnames.cgi я получаю следующую ошибку:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at rankings.RankMenu.toArrayList(RankMenu.java:160)
at rankings.RankMenu.menu(RankMenu.java:84)
at rankings.Rankings.main(Rankings.java:16)
Java Result: 1
Строка 160 это:
String test2 = temp[element];
Код для передачи строки в ArrayList:
Scanner read = new Scanner(text.openStream());
while(count < 25){
output = read.nextLine();
Как я могу проверить URL, чтобы предотвратить это ИЛИ настроить мой код, который вставляет файл в arrayList? Этот общий проект содержит 223 строки кода только в меню, поэтому я не буду публиковать все это, пока не понадобится помощь. Спасибо.
public boolean isValidURL(String url){
try{
java.net.URL file = new java.net.URL(url);
this.text = file;
return true;
} catch (java.net.MalformedURLException ex) {
return false;
} catch (java.io.IOException ex){
return false;
}
}
public void toArrayList(String string, int rank, int element){
String[] temp = string.split("\\s+");
String test = temp[rank];
String test2 = temp[element];
String[] newTemp = new String[temp.length - 2];
int cnt2 = 0;
for(int cnt = 0; cnt < temp.length; cnt++){
if(temp[cnt] != temp[rank] && temp[cnt] != temp[element]){
newTemp[cnt2] = temp[cnt];
cnt2++;
}
}
String test3 = Arrays.toString(newTemp);
textList.add(new Type(test, test2, test3));
}
1 ответ
Проверьте rank
, element
меньше, чем длина temp
массив до доступа к нему с помощью temp[rank]
а также temp[element]
,
Кроме того, проверьте, если cnt2
когда-либо выходит за рамки newTemp
,