Me llegan muchas visitas buscando el cómo poder cambiar entre varios tipos de datos en java, y ya creo que va siendo hora de que les haga un poquito de caso y explique como es posible convertir datos enteros a cadena (int a String) y cadena a enteros (String a int)
Por lo general lo que más suelo hacer es pasar cadenas a enteros, es decir, de un tipo String a un tipo int, notese que “String” es un objeto e int es un tipo básico luego el proceso de uno a otro será diferente.
Pasar un String a un int (de cadena a entero)
Para hacer la siguiente operación necesitaremos hacer uso de la clase Integer y de su método “parseInt” de la siguiente manera:
String numCadena = "1";
int numEntero = Integer.parseInt(numCadena);
¿Qué problemas podemos tener? pues que la cadena no sólo contenga números sino que venga con espacios.
Si los espacios vienen al princio o al final, con un simple trim bastará para eliminarlos, por ejemplo (” 1 “)
numCadena.trim();
Si tenemos espacio entre los números deberíamos usar el método replaceAll (” 1 3 45 6″)
numCadena.replaceAll(" ", "");
Una vez realiazdos estos sencillos pasos podremos trabajar con los números enteros.
Pasar un int a String (de entero a cadena)
Para pasar de un tipo básico a un objeto String tenemos varias posibilidades, por un lado, si eres un artesano, puedes simplemente concatenar a tu entero una cadena vacía:
int numEntero = 4;
String numCadena= numEntero+"";
La forma correcta de realizar esta operación sería invocando al método valueOf de la clase String
int numEntero = 4;
String numCadena= String.valueOf(numEntero);
Otra forma correcta de hacerlo sería utilizando el método toString del objeto Integer de la siguiente manera:
String numCadena= Integer.toString(numEntero);
Espero que esto les sirva a todas aquellas personas que vinieron buscándolo, al menos así es como suelo hacerlo.
escueto y útil. Gracias
De lujo hermano me salvaste la vida
De nada
de esa manera tambien se puede convertir un entero a string siendo el entero un procedimiento almacenado? la verdad no tengo muy claro eso
buen Blog. sigan adelante.
necesito ques ean mas didacticos y que los problemas sean mas grandes gracias por su comprecion
desearía saber como se codificara en una validación variable numérica , si por error se ingresa letras ya que ese valor no puede ser calculado , aparte de usar una estructura de control para validar , que proceso o método aplicaría , para evitar que me salga error y se interrumpa la ejecución del programa. por ejemplo:
sueldo : 64h // al hacer eso me sale error
como evitar que se interrumpa la ejecución ?
Lo que podrias hacer es colocar un try catch. Cuando se lance la excepcion la atras en el catch y hacés que el programa siga ejecutandose.
Saludos
Gracias, con esto me salió un pequeño detalle de un trabajo que me dejaron, era lo ultimo yestá bien ahora, gracias
me alegro
gracias por la informacion …
De nada Javier
Muchas Gracias, necesitaba saber como pasar un Int a String ^^
un placer
Y para pasar de char a int?
@Salomón: Puedes hacerlo de varias formas, o bien lo pasas a su valor ascii
char c = ’33′;
int n = c – 48; /* 48 es el valor ascii del 0 */
O lo transformas a un String y utilizas la forma aquí expuesta
char c = ’33′;
cadena = “” + c;
int n = Integer.parseInt (cadena);
Genial compa, me sirvio un monton tu ayuda, esta re bien explicado, sigue asi.
gracias
Sirvió
Tengo un problema para extraer las codenas numéricas contenidas en String, ya que los String contienen números y letras mezclados, o incluso no contienen números.
ejemplos “ad234″,”123fr”,”a3f5″,”fggtr”.
¿Podrías ayudarme?
gracias.
Pues así a primeras lo que se me ocurre que podías hacer es ir recorriendo la cadena carácter por carácter e ir comprobando cada uno si es numérico o no (isNumeric)
No sé si existe esa función en las APIs de Java, sino, sería algo tan sencillo de hacer como esto
private static boolean isNumeric(Char car){
try {
Integer.parseInt(car);
return true;
} catch (NumberFormatException nfe){
return false;
}
}
Si devolviese true, lo añades a una cadena, sino no, y al final tendrás en una cadena todos los números.
Ok, gracias, probaré.
como puedo hacer de un String a un entero (código ASCII) pero sin usar ningun metodo interno de java como el parseInt() ni atoi()….? me urge.. gracias!!..
si haces la conversion de la cadena de caractes de String a ASCII en lenguaje ensamblador(.ASM) te lo agradeceria mucho mas:D !!:… XD!!
pense que podias contestarme!!!.. gracias adios!!
Perdona BrisS! he estado de vacaciones y volví ayer, los post que se escriben lo hacen de forma automática.
Lo único que puedo ofrecerte es este tutorial de ensamblador, tal vez ahí encuentres lo que necesitas
http://emilio.aesinformatica.com/tutorial-ensamblador/
y para pasar de int[][] a String [][]
es q ocupo mostrar un array en un inputMessageDialog, de JOptionPane
Desconozco si se puede hacer de forma automática, sino, con una pequeña función que los recorra y aplique lo visto en este artículo estaría listo ¿no?
en java
hi!
he aplicado el codigo para convertir de String a int, pero no he tenido resultados positvos..
miralo
private static String ingresoDineroDia(Parqueo clientes[])//
{
int suma=0;
int tamV=clientes.length;
int monto1;
int monto2;
for(int i=0;i<tamV;i++)
{
String cadena1="";
String cadena2="";
cadena1=clientes[i].getHoraE();
cadena2=clientes[i].getHoraS();
monto1=Integer.parseIn(cadena1);
monto2=Integer.parseIn(cadena2);
suma+=monto2-monto1;
}
suma=suma*500;
JOptionPane.showMessageDialog(null,"Cantidad recaudada en el dia: "+ suma);
return null;
}
parseInt no parseIn
bueno eso fue un dedazo,
pero ya lo he utilizado correctamente
monto1=Integer.parseInt(cadena1);
no me da error pero al correrlo no me pasa de esta linea.
SERÁ QUE TIENE ALGUN OTRA ERROR,
QUE ME DICES?
GRACIAS….
No sé de que tipo es lo que vuelvas en cadena1, lo sacas de clientes[i].getHoraE(), deberías comprobar que es un string o incluso transformarlo String.valueOf()
Comprueba tamibén que es un número lo que quieres convertir.
De todas maneras en la consola de Java puedes ver el fallo que te da, así tendrás más respuestas.
amio t agradesco por os codigos reusltaron muy efectivos , no se si podrias ayudarm con este otro
me piden q muestre una cantidad de numeros con comas(para miles), apostrofes(para millones).
y no s ecomo hacerlo ya q estoy utlizando java con programa
me podrias ayudar si?
hola!
sigo con el problema de comparar un dato sacado de un vector, el vector es del tipo de una clase creada por mi,
ejemplo:
Compra registroDiarioProduccion[]= new Compra[maxDP];
este vector lleva varios datos, int, String y double.
la cuestion es que necesito comparar un datos int que entra por medio de usuario con un dato int que esta almacenado en este vector, igualmente lo debo hacer con datos String
ejemplo:
for(int i=0;i<tamRDP;i++)
{
int comparoSemana=0;
int comparoCedula=0;
comparoSemana = registroDiarioProduccion[i].getSemana();
comparoCedula = registroDiarioProduccion[i].getCedula();
//aca es donde se detiene la corrida en el momento de asignarles el valor extraido del vector,
//este es el error que me tira:
Exception in thread "main" java.lang.NullPointerException
at controldeproduccion.Main.generarInformeSemanal(Main.java:455)
at controldeproduccion.Main.main(Main.java:94)
Java Result: 1
BUILD SUCCESSFUL (total time: 13 seconds)
//hasta aca es el error lo que continua es el resto del codigo
if ((semanaEntrada==comparoSemana)&&(cedulaEntrada==comparoCedula))
{
semanaM=semanaEntrada;
productorM=registroDiarioProduccion[i].getProductor();
cedulaMP=cedulaEntrada;
cestaSemanalM+=registroDiarioProduccion[i].getCantidad();
devolucionSemanalM+=registroDiarioProduccion[i].getDevolucion();
procesadoSemanalM+=registroDiarioProduccion[i].getCantidadPagar();
precioSemanalM=registroDiarioProduccion[i].getPrecio();
cajaSemanalM+=registroDiarioProduccion[i].getCajasExportadas();
rendimientoSemanalM+=registroDiarioProduccion[i].getRendimiento();
}
}
TE AGRADEZCO CUALQUIER AYUDA O CONSEJO
GRACIAS….
wena wena !! preciso !!
vale……
una pregunta, para leer un archivo..
por ejemplo en el archivo tengo esto:
(33+5)
(5*10)/5
etc…
como le hago para que me lea caracter por caracter y que me lo asigne a un string?
seria de mucha ayuda ya que estoy haciendo un analizador lexico
muchas gracias
grax x la info compadre me sirvio de mucho en mis trabajos con GUI’s
saludos desde Peru
De nada amigo!
gracias pero aun me falta saber como pasar un string en letras a un int: ej. pasar String C=”abc”; a un int M;
si me puedes ayudar te agradezco.
Evidentemente, “abc” nunca va a poder ser un entero.. ya que son letras
muy buen blog y instructivo y entretenido
Muchas graciasss!!!
Gracias, sigue así.
HOLA, emilio me ha servido tu post y mucho hasta ahora estoy viendo java en la Universidad y estudio ing de sistemas, el caso es que queria preguntarte si conoces algun manual de java que explique detalladamente como crear interfaz de usuarios, eventos y todo lo demas esto para un trabajo que tengo q entregar en unos cuantos días….Ojala puedas pasarme un link te lo agradeceria mucho Bye…
Gracias, bien explicado.
tengo un problema y espero obtener tu ayuda seria agradable…!!
tengo JOptionPane… necesito que me digiten en el numeros… como hago para saber que solo digiten numeros…
hola
he probado lo que pones de pasar de int a string pero no se porque me dice que no encuentra el metodo. hay que importar algun paquete?
gracias
gracias TOTALES
Hola!!
Hace años que no programo en java y estoy haciendo una aplicacion… gracias por la informacion!!
Saludos
Necesito ayuda para poner ceros en un entero..
ejemplo:
Si tecleo un 1
//Tiene que aparecer 001
Si tecleo un 10
//aparecer un 010
Esto no es para impresion
Sino que necesito juntar un Entero+Cadena
el entero como maximo es 999.
y ordenarlos
solo me falta como concatenarlos
Si alguien me podria ayudar se lo agradeceria.
Ok ya supe como
jaja aki les dejo por si lo ocupan algun dia.
int a;
v[i].getDato(a);
if(a<9)
String s="00"+Integer.toString(v[i].getDato(a));
if(a<9)
String s="0"+Integer.toString(v[i].getDato(a));
if(a<9)
String s=Integer.toString(v[i].getDato(a));
Y entonces si a concatenar string con string… y utilizar
if(s.compareTo(string "hola")<0);
Y por ultimo Ordenar …
nojoda loco muy util tu ayuda en realida gracias
gracias tronko, muy util y muy bien explicado, lo justo y necesario..si todos los profes lo hiciesen asi…XD
que pasaria si tengo una cadena “86A87+15C$”, y lo que quiero es poder presentar los tipos de caracteres separados ej.: “868715″ “+$” “AC”, como????
gracia, La explicación es corta y sencilla, no tengo experiencia en java y me sirvió mucho
hola tengo esto me lo hace pero me coloca 0 en la caja de texto,, me podrias decir porque
int partido=(candidato.getPartido());
String parti= partido+”";
this.TPartido.setText(parti);
intentalo con apostrofes ” en vez de comillas “”….
Muchisimas gracias, acabas de salvarme el semestre.
Tengo un String = “2.0″ como ¿puedo pasar este string a long eliminando el decimal?
Muchas Gracias
Este articulo me salvo
Te la rifas
Hey tengo una pregunta no se si podras ayudarme, necesito que mi programa lea esta variable:
String enteroDos = “2147483648″;
//pero como es un numero muuy largo no me lo acepta he intentado declararlo como double o float pro nada, si lo paso directamente a String a la hora de imprimirlo con el System.out se deberia imprimir como la suma de ese y otro numero, y no importa, el programa corre mas no me da el valor correcto, ha de ser por definirlo como cadena de cararteres (string directamnt)
Sera que me ayudas a pasarlo a String y que se lea como un numero o a resolver el problema!?
MUCHAS GRACIAS!!
Hola.. Tengo un problema que no logro resolver,ya que soy “NOVATO” en Java,apenas estoy aprendiendolo a usar y me gustaria saber si me podrían dar una mano.
1.Problema:en InterfazGráfica necesito crear un dato tipo texto el cual se escribe en el Campo de Texto y al hacer clic en un boton “Aceptar” me da la respuesta en un panel que llamé “respuesta” y la respuesta me debe aparecer verdadero y otra con con respuesta falsa.Asi:
La capital del departamento del valle es:
(CAMPO DE TEXTO “donde escribo cali”)
(Botón “Aceptar”)
(Panel con borde “tiulo respuesta”) y dentro del panel debe aparecer la respuesta
verdadero.
La capital del departamento del valle es:
(CAMPO DE TEXTO “donde escribo medellin”)
(Botón “Aceptar”)
(Panel con borde “tiulo respuesta”) y dentro del panel debe aparecer la respuesta
falso. LE AGRADECERIA LA AYUDA (ME URGE).GRACIAS.
Hola quisiera saber si esto es posible en JAVA
leer de teclado parejas de numeros
y el programa sera capaz de traducir la palabra encriptada
la primera siempre dira el numero 0-9
y la segunda dira la posicion 1-3
en fin es como simular la escritura de mensajes de texto por celular
por ejemplo
61 21 61 21 = mama
61 = 6(tecla) (pos. de la letra)
Muchas gracias, me sirvió de mucho.
Saludos desde Lima.
puedes pasarlo ocupando
String.valueOf
ese te acepta la gran mayotia de datos
Carlos>>
tu respuesta seria con condiciones ò casos
ejemplo:
String X=null;
int c=leer;//Lees el numero;
switch (c)
{
case 21: X=”m”; break;
case 22: X=”a”; break;
}
espero que te haya servido
al final solo concatenas
X=X+X; //mama
Oie y si tengo una linea de String como almaceno varios numeros en una cadena de int´s??
help me!!
ayudame
Mil mil Gracias
Saludos desde Venezuela
Anda mira donde me redirigido buscando esto!!jaja
Jajajajajaj así da gusto
hola disculpa me gustaria saber como convertir un dato cualquiera introducido desde el teclado a un tipo entero, y posteriormente poder utilizarlo para realizar operaciones. Yo hice este codigo pero me arroja un error:
import java.util.*;
class Entero
{
public static void main(String a[])
{
Scanner d=new Scanner(System.in);
int entero;
int div;
String dato;
System.out.print(“Introduce el dato:”);
dato=d.next();
try
{
entero=Integer.parseInt(dato);
}
catch(NumberFormatException e2)
{
System.out.println(“El dato introducido no es correcto”);
}
div=entero/2;
System.out.println(“\n\nEl resultado es:”+entero);
}
}
ayuda por favor
Ayuda pliz con esto
AL hacer esta resta en tipo doble
double x=5.9992-6 //x=-7.999999E-4
yo necesito de resultado esto: -0.0008
Si alguien tiene alguna idea de como hacerle le agradeceria mucho
hola amigos eh visto el los aportes q han hecho y me han parecido muy interesantes eh aprendido algunas cosas muy importante.
ojala pudieran ayudarme con un trabajo q tengo q entregar, estoy estudiando ing en sistemas.
bueno tngo el codigo del cual tngo q modificar y crear una version mas compacta y una version con Strings.
ojala puedan ayudarme se los agradeceria mucho.
import javax.swing.JOptionPane;
class ArregloNumerico{
public static void main (String[] bas) {
int arre[]=new int[25],n=0,busca,opc=0;
float prom;
while(opc!=5){
opc=Integer.parseInt(JOptionPane.showInputDialog(“\n \n1-Leer Datos \n2-Escribir Arreglo \n3-buscar un Número \n4-Ordenar \n5 – Salir” ));
switch(opc){
case 1:n=leeArre(arre,n);break;
case 2:escribeArre(arre,n);break;
case 3: buscaArre(arre,n);break;
case 4:ordenaArre(arre,n);break;
};
}
}
public static int leeArre(int[]x,int n){
int i=n,j;
j=0;
while(j!=666){
j=Integer.parseInt(JOptionPane.showInputDialog(“Entradas de Valores”, “Valor”+(i+1)+” para salir”));
if(j!=666){x[i]=j;
i++;}}
return i;}
public static void escribeArre(int[]x, int n){
for(int j=0;j<n;j++)System.out.println("valor"+(j+1)+":"+x[j]);
}
public static void buscaArre(int[] x,int n){
int sub=0;
int y=Integer.parseInt(JOptionPane.showInputDialog("Valor a buscar"));
while(x[sub]!=y&& sub<n) sub++;
if (x[sub]==y) System.out.println("Valor encontrado con subíndice" +sub);
else System.out.println("Valor no existe en arreglo");
}
public static void ordenaArre(int[]x, int n){
int t;
for(int i=0;i<(n-1);i++)
for(int j=i+1;j<n;j++){
if(x[i]<x[j]){
t=x[i];
x[i]=x[j];
x[j]=t;}
}
}
}
espero me ayuden se los agradecere mucho.
saludos desde Oax
Muy claro el ejemplo.
Yo he tenido que añadir la logica para tratar el punto y la coma
public static Integer convertirCadenaEnEntero(String cadena) {
cadena = cadena.trim();
if(cadena.indexOf(“.”) > 0 ) {
cadena = cadena.substring(0,cadena.indexOf(“.”));
}
if(cadena.indexOf(“,”) > 0 ) {
cadena = cadena.substring(0,cadena.indexOf(“,”));
}
Integer numero = 0;
try {
numero = Integer.parseInt(cadena);
} catch (Exception ex) {
// la cadena no es un numero
}
return numero;
}
Muchas gracias.
Me sirvió la conversión de int a String.
Saludos.
al pasar un string a un long me sale un error , lo codifique asi :
String ipDecimalString = ” 3232241478″ ;
long ipDecimal = Long.parseLong(ipDecimalString ););
y me sale una excepcion y no se por que :
Exception in thread “main” java.lang.NumberFormatException: For input string: ” 3232241478″
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at DecimalAIpConBinario.main(DecimalAIpConBinario.java:9)
muchas gracias por su ayuda
como se puede combinar el swicht con el parseint
me pueden ayudar para acer un progranita de una calculadora
les dejo el codigo que estoy aciendo
import javax.swing.JOptionPane;
public class calculadorita {
public static void main(String args[]) {
String a = JOptionPane.showInputDialog
( “numero a introcucir” );
System.out.println(a);
String b = JOptionPane.showInputDialog
( “numero a introcucir” );
System.out.println(b);
String op = JOptionPane.showInputDialog
( “opciones \n 1=suma \n 2=resta \n 3=multiplicacion\n 4=divicion” );
System.out.println(op);
System.out.print(“El resultado es : “);
switch ( op ) {
case ’1′:
System.out.println( a + b );
break;
case ’2′:
System.out.println( a – b );
break;
case ’3′:
System.out.println( a * b );
break;
case ’4′:
System.out.println( a / b );
break;
default:
System.out.println(“error” );
break;
}
}
}
para que me ayuden por que la neta no se acerca de ello
gracias
gracias
Gracias, me sirvio el Integer.toString(x)
Muy bueno, todos los ejemplos deben ser asi de claro. Gracias.
amm bueno por lo k eh leido eres bueno en esto y quisiera ver si me puedes ayudar con un trabajo.
lo que pasa esk tengo k hacer una suma de 2 numeros pero al mostrar el resultado debo tambien mostrar los numero que se sumaron y decir de k tipo fueron, ejemplo:
valor1=1;
valor2=4.5;
ESTO ES LO QUE DEBO MOSTRAR
{ Resultado 5.5
El primer valor es de tipo: entero
El segundo valor es de tipo: Double
}
como puedo evaluar los valores para que me muestre el tipo de dato que es. pero debe de funcionar tambien a la inversa si el valor 1 es de tipo double y valor 2 de tipo entero.
Espero puedas ayudarme.
como convierto un entero en una cadena en java
HOLA QUE TAL BUEN DIA, OYE AQUI MOLESTANDO, ME PUEDES AYUDAR EN UN PROGRAMA EN UN VECTOR DE TAMAÑO 10 GUARDE CARACTERES ENTRE A Y Z ALEATORIOS E INDIQUE CUANTAS VOCALES FUERON ALMACENADAS, SPERO TU RESPUESTA MUCHAS GRACIAS…
Gracias, me ayudaste mucho amigo!! ^-^ Aún soy aprendíz en estas cosas de JAVA.
excelente!! me sirvió de mucho amigo.. muchísimas gracias.. me sacó de apuros..
Me alegro mucho amigo
Muchas gracias por tu articulo me ha sido de gran ayuda,gracias tío.
hola, tengo un problema y es que hago una consulta en la base de datos y me retorna un null, ahora ese null que me retorna quiero guardarlo en una variable int pero que lo tome como un 0(cero).
le agradesco su pronta respuesta.
Es excelente tu expliacion, sencillo y util ! GRACIAS.
Saludos desde Lima – Peru
un metodo es int calcularCantidadMillas que da las millas en numeros enteros.
Me toca hacer otro metodo que diga las millas pero en una cadena entonces me gustaria como poner el metodo para eso
hola hola. estoy haciendo un programilla donde el usuario ingresa el precio del producto… Como ago para que el programa no se caiga si el usuario digita una letra en vez de un numero.? gracias
a.! y que no sea el catch porfa
GRacias!!!!!
me sirvio mucho!!! lo de int a String
int i=5;
String is=String.valueOf(i);
System.out.Println(is);
oiga gracias espero que siga publicando
Danke schön!!!!
Simplemente muy util gracias
Muchas gras, me ayudo con mi jtable
Unas preguntas, sobre la conversión de int a String ..
1.- ¿A que te referías con artesano?.
2.- De las tres formas de hacerlo, ¿Existe una que sea mejor quizás en tiempo de procesamiento?¿Por que?
3.- ¿Se podría decir que el primero no esta bien?
Gracias
Muchas Gracias fue de mucha ayuda ara poder terminar un proyecto (=!
Muchas gracias por el post, esta muy claro y funcional.
Simplemente muy util gracias!
Gracias!!!
es para avisarte que tu post sigue siendo útil, muchísimas gracias x)
Hey, esto es genial me ayudo bastante en mi proyecto xD.
Saludos, corto pero conciso
empezaba a odiar java pero muchas gracias por esta explicaciòn, lo has hecho muy sencillo. Felicidades por tu página.
No me funciona el codigo
Muchas gracias, me salvaste la vida!!!!
Hola como tengo 3 enteros los cuales son dia, mes y anho y quiero dejarlos de la siguiente manera pero en string dd/mm/yyyy si alguien sabe que ayudaria mucho ..saludos.
Gracias de parte de un estudiante de ing
Gracias.. sencillo practico.. y de inmediato vamos al problema sin rodeos… porque no todo es asi?? THANKS..
Gracias.
Gracias Emilio, me ha sido de mucha utilidad el este trabajo.
Muchas gracias Emilio. Estoy haciendo un curso online de Android y mis conocimientos de Java son bastante limitados.
Aún así estoy progresando adecuadamente, y mira por donde esta entrada me ha sido muy útil en el día de hoy.
Saludos!!
Quiero hacer una calculadora, lo que pasa es que obtengo un String como este
TextField :3*4+5
//obtengo el string
Int resultado =TextField.getString();
quiero que java lo interprete a los operadores de manera lógica, osea:
osea que en resultado me salga : 17
COMO LO HAGO ?????
gracias por los principiantes¡¡¡¡¡¡¡¡¡¡¡¡
soi de chile y soi un apasionado por la programacion.
Buen post me sirvio de mucho gracias
…SOLO ESCRIBO PARA AGRADECER POR ESTA PAGINA…VARIAS VECES LA HE VISITADO PARA MIRAR COMO CONVERTIR UN ENTERO A STRING….MUCHAS GRACIAS
amigo como hago para convertir una cadena a binario .. gracias