Foros del Web » Programación para mayores de 30 ;) » Java »

como covertir un string a int[]

Estas en el tema de como covertir un string a int[] en el foro de Java en Foros del Web. hola amigos, quisiera saber como puedo hacer un metodo que reconozca y convierta una serie de numeros en string a valores numericos int, estoy intentando ...
  #1 (permalink)  
Antiguo 23/08/2011, 19:53
Avatar de dexter00x  
Fecha de Ingreso: octubre-2010
Ubicación: bolivia
Mensajes: 87
Antigüedad: 13 años, 6 meses
Puntos: 5
como covertir un string a int[]

hola amigos,
quisiera saber como puedo hacer un metodo que reconozca y convierta una serie de numeros en string a valores numericos int,

estoy intentando pero me he trabado en mi codigo


aqui lo copio el metodo que trata de convertir un texto como por ejemplo "14 05 56 778"
a un int[]



public int[] textovector(String texto){
char[] array = texto.toCharArray();
int tam=0;

for(int i=0; i<array.length; i++){
if(array[i]==' '){
tam++;
}
}

tam++;

int[] data = new int[tam];

int ii =0;
int iii =0;
char espacio = ' ';
String temp = "";
while(ii < array.length){

if(array[ii]!=' '){

temp = temp + ""+array[ii];
}

if(array[ii]==' '||array[ii]==array[array.length-1]){
data[iii] = Integer.parseInt(temp);

temp = "";
iii++;

}

ii++;
}
return data;
}
  #2 (permalink)  
Antiguo 24/08/2011, 00:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: como covertir un string a int[]

Cita:
Iniciado por dexter00x Ver Mensaje
hola amigos,
quisiera saber como puedo hacer un metodo que reconozca y convierta una serie de numeros en string a valores numericos int,

estoy intentando pero me he trabado en mi codigo


aqui lo copio el metodo que trata de convertir un texto como por ejemplo "14 05 56 778"
a un int[]



public int[] textovector(String texto){
char[] array = texto.toCharArray();
int tam=0;

for(int i=0; i<array.length; i++){
if(array[i]==' '){
tam++;
}
}

tam++;

int[] data = new int[tam];

int ii =0;
int iii =0;
char espacio = ' ';
String temp = "";
while(ii < array.length){

if(array[ii]!=' '){

temp = temp + ""+array[ii];
}

if(array[ii]==' '||array[ii]==array[array.length-1]){
data[iii] = Integer.parseInt(temp);

temp = "";
iii++;

}

ii++;
}
return data;
}
public int[] textovector(String texto){

texto = texto.trim();//eliminar los caracteres blancos que puede haber al principio o al final de texto.
int tam=0;
int longitud = 0;
char espacio = ' ';
if (texto != null)
{
longitud = texto.length();
}
for(int i=0; i<longitud; i++){
if(texto.charAt(i)==espacio){ //aqui se puede comprobar que el caracter es un numero para que al parse int no de un error
tam++;
}
}

tam++;

int[] data = new int[tam];

int indice =0;

String temp = "";
for(int i=0; i<longitud; i++){
char caracter = texto.charAt(i);
if(caracter!=espacio){

temp = temp + caracter;//aqui se puede comprobar que el caracter es un numero para que al parse int no de un error
}

if(caracter ==espacio){
data[indice++] = Integer.parseInt(temp);

temp = "";


}


}
if (!temp.equals(""))
{
data[indice] = Integer.parseInt(temp);
}
return data;
}
  #3 (permalink)  
Antiguo 24/08/2011, 07:28
Avatar de dexter00x  
Fecha de Ingreso: octubre-2010
Ubicación: bolivia
Mensajes: 87
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: como covertir un string a int[]

mmmmm :( :(
me has hecho deprimir,
como es posible,,,, me pase como una hora tratando de hacer ese codigo,
y tu vienes y me lo das asi de facil

porque !!!!


jeje broma
gracias man, funciona
gracias de verdad :)
  #4 (permalink)  
Antiguo 24/08/2011, 09:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 20
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: como covertir un string a int[]

Buenas,
La clase Character tiene un método que te dice si un caracter es un digito o sea un número puedes utilizarlo de esta manera. Character.isDigit(character); si te dice que si el metodo entonces lo conviertes, ya tienes el string convertido a un arreglo de caracteres solo lo recorrer y comparas.
Saludos.
  #5 (permalink)  
Antiguo 24/08/2011, 10:09
Avatar de dexter00x  
Fecha de Ingreso: octubre-2010
Ubicación: bolivia
Mensajes: 87
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: como covertir un string a int[]

Cita:
Iniciado por leinier04 Ver Mensaje
Buenas,
La clase Character tiene un método que te dice si un caracter es un digito o sea un número puedes utilizarlo de esta manera. Character.isDigit(character); si te dice que si el metodo entonces lo conviertes, ya tienes el string convertido a un arreglo de caracteres solo lo recorrer y comparas.
Saludos.
gracias tambien, seguro que me va servir en algun momento
__________________
ingles gratis
  #6 (permalink)  
Antiguo 25/08/2011, 01:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: como covertir un string a int[]

Cita:
Iniciado por dexter00x Ver Mensaje
mmmmm :( :(
me has hecho deprimir,
como es posible,,,, me pase como una hora tratando de hacer ese codigo,
y tu vienes y me lo das asi de facil

porque !!!!


jeje broma
gracias man, funciona
gracias de verdad :)
Me alegro que funcione y te sirva, tambien puedes usar la clase Vector en vez de usar un array y cuando tengas un nuevo numero lo añades con add y al final del metodo puedes hacer vector.toArray();, depende de la version de java te devolvera un array de Integer o array de int.

Con esto te ahorras el primer bucle que te calcula la longitud del array.

En mi código te he puesto un par de comentarios donde puedes usar el Character.isDigit() para que no falle la instrucción de Integer.parseInt(numero);

PD: ejemplo de vector.toArray();

Integer[] data = (Integer[])vector.toArray();
o int[] data = (int[])vector.toArray();//esta instrucción no funciona en todas las versiones de java porque tienen que ser objetos y el tipo es un tipo primitivo.

Etiquetas: string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 00:40.