Java обращается к конкретному элементу в массиве строк - PullRequest
2 голосов
/ 21 февраля 2011

Я использую сканер для собственного использования.Я скачал один и хочу обеспечить его семенами.Я хочу предоставить ему около 50 семян.Поэтому я создал массив строк.Я хочу предоставить сканеру по 1 семени каждый раз, когда он проходит мой цикл for.Мой код:

String [] temp = новая строка [] {"http://www.random.org/","http://www.wikipedia.org/"," http://www.jlworld.com/","http://www.frys.com/"};

String [] urls = новая строка [temp.length];

  for (int i = 0; i <=temp.length; i++)       
     {          
        urls[i] = temp[i];      
     }

Искателю требуется строка, назначенная URL-адресам.Например:

String [] urls = new String [1];

urls [0] = "http://www.google.com/";

Так оно и работает.Однако я получаю исключение outofbounds для своего кода. Что я хочу сделать, так это предоставить сканеру по 1 из семян каждый раз, когда он проходит цикл for. Любая помощь по этому вопросу будет принята с благодарностью!

Ответы [ 6 ]

5 голосов
/ 21 февраля 2011
for (int i = 0; i <=temp.length; i++)

Должно быть:

for (int i = 0; i <temp.length; i++)
2 голосов
/ 21 февраля 2011
for(int i = 0; i < temp.length; i++)

Вызов .length для массива возвращает размер массива, но индексы массива основаны на 0.Для вашего цикла вы правильно начали с i = 0, но вам нужно только перейти к i = (temp.length - 1) или вы получите исключение индекса за пределами границ.Сравнение i < temp.length вместо i <= temp.length учитывает этот сдвиг в базисе индекса.

1 голос
/ 21 февраля 2011

Изменить строку

for (int i = 0; i <=temp.length; i++)

на

for (int i = 0; i < temp.length; i++)

Вы зацикливались слишком много раз

0 голосов
/ 21 февраля 2011

Код должен быть

 for (int i = 0; i <temp.length; i++)       
 {          
    urls[i] = temp[i];      
 }

Индекс массива начинается с 0 до длины-1

0 голосов
/ 21 февраля 2011

Почему бы не использовать карту пар [URL, seed] вместо необработанных массивов? Выполните поиск, используя URL, и все готово.

0 голосов
/ 21 февраля 2011
for (int i = 0; i < temp.length; i++) {          
    String url = temp[i];      

    ... handle url...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...