Добавление строк в списки - Java - PullRequest
6 голосов
/ 08 июня 2011
        String t1 = request.getParameter("t1");
        String t2 = request.getParameter("t2");

        List<String> terms = new ArrayList<String>();
        for (int i = 1; i < 51; i++) {
            terms.add(t + i);
        }

Представьте, что у меня были переменные от t1 до t50, возможно ли зациклить каждый t, используя счетчик? Нечто подобное выше, но obvi, который не работает.

Ответы [ 6 ]

12 голосов
/ 08 июня 2011

Вам не нужны временные переменные, t1, t2 и т. Д. В противном случае вы оказались на правильном пути.

    List<String> terms = new ArrayList<String>();
    for (int i = 1; i < 51; i++) {
        terms.add(request.getParameter("t" + i));
    }
5 голосов
/ 08 июня 2011

Вместо всех временных переменных просто захватите параметры в цикле:

    List<String> terms = new ArrayList<String>();
    for (int i = 1; i < 51; i++) {
        terms.add(request.getParameter("t"+ i));
    }
5 голосов
/ 08 июня 2011

Нет, вы не можете "создать" имена переменных, подобные этим в Java (на самом деле, во время выполнения локальные переменные даже не имеют имен).

Однако вы можете избавиться отпеременные целиком и вызовите getParameter() с соответствующими значениями:

  List<String> terms = new ArrayList<String>();
  for (int i = 1; i < 51; i++) {
      terms.add(request.getParameter("t" + i);
  }
3 голосов
/ 08 июня 2011

Не можете ли вы сделать это?

for (int i = 1; i < 51; i++) {
    terms.add(request.getParameter("t" + i));
}
1 голос
/ 08 июня 2011
terms.add(request.getParameter("t" + i));

В своем коде вы добавляете в список строку, которая является несуществующей переменной t, загрязненной / суммированной с i

0 голосов
/ 08 июня 2011

Вы не можете просто зацикливать переменные. Однако, почему бы вам не сделать массив (string []) или даже ArrayList, если вы заранее не знаете размер. Тогда вам даже не понадобится цикл, и вы можете получить доступ ко всем переменным практически одинаково?!

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