Как включить индекс каждого имени файла в список при использовании цикла for-each

#java #bluej

#java #bluej

Вопрос:

Я работаю над сложным упражнением, в то время как я использую bluej. Здесь у вас есть код, с которым я борюсь:

 public void listAllfiles()
{
    for(String filename : files) {
        System.out.println(filename);
    }
}
  

Предполагается, что я улучшу этот метод, включив индекс каждого имени файла в список при печати. Кажется, я застрял после многочисленных попыток сделать это правильно. Я знаю, что мне нужна локальная переменная «position» в методе, а также оператор для обновления его значения на единицу внутри цикла for-each. Я просто не могу понять это правильно.

Комментарии:

1. Какой тип files ?

Ответ №1:

Может ли это быть так просто:

 int count = 0;
for(String filename : files) {
    System.out.println(String.format("files[%s]: %s", count  , filename));
}
  

Ответ №2:

Было бы лучше изменить цикл for с расширенного цикла for each for(... : ...) на обычный индексированный цикл for for(...; ...; ...) :

(Обратите внимание, что в intellij idea для этого есть рефакторинг, просто наведите курсор на токен for , щелкните лампочку и выберите: «Заменить «для каждого» цикла на «индексированный»для» цикла», но я сомневаюсь, что bluej настолько полезен, поэтому вам придется делать это вручную)

Предполагается files , что это массив:

 for(int i = 0; i < files.length; i  ){
    System.out.println(i   ": "   files[i]);
}
  

Комментарии:

1. Помогло ли это вам? Пожалуйста, поддержите или примите полезные предложения.