2011-06-08 24 views
6
 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); 
     } 

Imagine que tenía vars t1 a t50, ¿es posible repetir cada t usando un contador? Algo como arriba, pero obvi que no funciona.Agregar cadenas a listas - Java

Respuesta

11

No necesita las variables temporales, t1, t2, etc. De lo contrario, estaba en el camino correcto.

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

En su código está añadiendo a la lista de una cadena que es un inexistentes variables t contatenated/sumada con i

5

No, no se puede "construir" los nombres de variables como eso en Java (de hecho, en el tiempo de ejecución las variables locales ni siquiera tienen ningún nombre).

Puede, sin embargo, deshacerse de las variables por completo y llamar getParameter() con los valores apropiados:

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

¿No puede hacer esto?

for (int i = 1; i < 51; i++) { 
    terms.add(request.getParameter("t" + i)); 
} 
5

En lugar de todas las variables individuales temporales sólo agarrar los parámetros en un bucle:

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

no se puede simplemente bucle sobre las variables. Sin embargo, ¿por qué no hace t una matriz (cadena []), o incluso una lista de arreglos si no conoce el tamaño de antemano. Entonces ni siquiera necesitarías un bucle, y puedes acceder a todas las variables casi de la misma manera?