¿Cómo convertir un array de tipo string a int?

U

Estoy trabajando en un servlet en java NetBeans y le estoy enviando información de una página HTML, en la página tengo 3 inputs:
<input name="cantidad" type="number">
<input name="cantidad" type="number">
<input name="cantidad" type="number">

En el Servlet tengo el método post y el override y también lo siguiente:

String [] Cantidad = request.getParametersValues("cantidad");

Pero quiero obtener la variable Cantidad como tipo entero, pero no sé como hacerlo

Intenté hacer esto:
Int [] Cantidad = request.getParametersValues("cantidad")
Pero me da un error

afhn

parsealo brother

U

No se como hacerlo, podrías ayudarme?

1 respuesta
totespare

#3 usando Integer.parseInt(string); no te sirve? Transformando el array de string en uno de int, básicamente

1 respuesta
U

#4 podrías hacerme el ejemplo? Soy nuevo en java y sinceramente no sé como hacerlo

1 respuesta
Sk8eR

perdona, el primer paso es mirar stackoverflow, si llevas mal el ingles, haz el esfuerzo igualmente....

vincen
Integer.parseInt

Lo primero que tienes que aprender es a buscar en google.

"String to Int"

11
totespare

#5

String [] Cantidad = request.getParametersValues("cantidad");
int [] CantidadInt = new int[Cantidad.length];
for(int i=0; i<Cantidad.length; i++)
CantidadInt[ i] = Integer.parseInt(Cantidad[ i]);

1 1 respuesta
U

#8 me funcionó correctamente, podrías decirme cómo hacer una suma de todos los valores que se guardan en el array? Si no es mucha molestia

2 respuestas
vincen

#9 Puedes simplificar la pregunta, traducirla al inglés y buscarla en google? Encontrarás la respuesta en segundos.

Si preguntas todo, no buscas por tu cuenta y no aprendes, no vas a aprender por el camino nada.

4
KarlosWins

#9 Como te han dicho, tan fácil como buscar en google....

Leete esto por lo menos

https://en.wikiversity.org/wiki/Learning_Java/Basic_Java_Language

String [] Cantidad = request.getParametersValues("cantidad");
int [] CantidadInt = new int[Cantidad.length];
int suma = 0;
for(int i=0; i<Cantidad.length; i++){
CantidadInt[ i] = Integer.parseInt(Cantidad[ i]);
suma += CantidadInt[i];
}
1 respuesta
JuAn4k4

Yo aprendería a programar antes de ponerme a programar.

12 1 respuesta
bLaKnI

#12 That escalated quickly...
Un poco "tricky".

Ranthas

Curioso que nadie se haya fijado que los inputs tienen todos el mismo atributo name, curioso formulario.

1 respuesta
afhn

@hexan por aquí te llaman.

JuAn4k4

#14 Para enviar un array, muy old school.

S

Más mascadito va xD ( greetings to #11 ) :

public int getValues(String cantidad) {
String [] Cantidad = request.getParametersValues(cantidad);
int [] CantidadInt = new int[Cantidad.length];
int suma = 0;
for (Integer i:CantidadInt){
CantidadInt[ i] = Integer.parseInt(Cantidad[ i]);
suma += CantidadInt[i];
}
return suma;
}
1 respuesta
afhn

#17 eso se puede hacer en una línea, just saying.

2 respuestas
HeXaN

#18 Y seguro que #1 lo que necesita es un one liner.

1 respuesta
afhn

#19 :man_shrugging:

Fyn4r

Hazle ahí un mapreduce al toque

afhn

@desu dicen por aquí que hagas un mareduce al toque, que tú eres el master del letcode al toque.

S

#18 No veo necesario indexar todo en una sentencia para alguien que no sabe contar enteros dentro de un array. Pero si, just sayting.

JuAn4k4
request.getParameterValues("cantidad").stream().map(Integer.parseInt).reduce((a,b)-> a+b, 0).collect(Collectors.toList())

Tendrás que arreglar la sintaxis que estoy en el móvil.

3
desu

Lo de arriba esta mal, no puedes consumir dos veces un stream (reduce/collector/forEach) creo que en java les llaman terminadores.

int sum = request.getParameterValues("cantidad").stream()
                  .map(Integer::parseInt)
                  .reduce(Integer::sum)
                  .orElse(0);

Si quieres un side effecte en un stream y la suma por un lado y por otro guardarte los integers:

        List<Integer> numbers = new ArrayList<>();
        int sum = request.getParameterValues("cantidad").stream()
                  .map(Integer::parseInt)
                  .peek(numbers::add)
                  .reduce(Integer::sum)
                  .orElse(0);

Yo si tengo side effects prefiero hacer un bucle for.

1
9 días después
P

for(;;)
{
action("colleja al noob");
}

Usuarios habituales