Dígitos de un número

18/May/2011 Java , , , , 23 Comentarios

Hay una cosa muy sencilla, muy sencilla que nos pide mucha gente. Y esta es saber cuántos dígitos tiene un número con Java.

Lo primero será partir de un número:

  1. int iNumero = 123458;

Lo siguiente que vamos a hacer es convertirlo en una cadena String. Para ello utilizamos el método toString de Integer.

  1. String x = Integer.toString(iNumero);

Ahora que tenemos la cadena, será tan simple como conocer el tamaño de la misma, mediante .length(), lo cual coincidirá con la cantidad de dígitos de un número.

  1. System.out.println(iNumero + " tiene " + x.length() + " dígitos");

Como dije al principio, muy sencillo y útil para los que empiezan.

Existen otras formas alternativas, y posiblemente más artificiales, como la utilización de un bucle y la división entre 10.

  1. int iCantidad = 0;
  2. int iTemp = iNumero;
  3.  
  4. while (iTemp>0){
  5. iTemp = iTemp/10;
  6. iCantidad++;
  7. }
  8.  
  9. System.out.println(iNumero + " tiene " + iCantidad + " dígitos");

El número de dígitos de un número coincidirá con tantas veces como podamos dividir dicho número entre 10.

¿Se te ocurre otra forma de calcular los dígitos de un número? Compártela con nosotros.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

23 comentarios en “Dígitos de un número”

Víctor Cuervo

Neker

hola necesito programar en java net beans aplicacion movil para ingresar un valor luego visualizar cuantos digitos tiene

Víctor Cuervo

Víctor Cuervo

¿Qué tipo de aplicación móvil? ¿Nativa?¿Java ME?¿Web que se adapte al móvil?

Saludos.

Víctor Cuervo

bush

hola nesesito un programa en peseint que de la raiz cuadrada de cualquier numero pero con la condicion de que sale como respuesta solo el numero entero y 3 digitos de decimales por favor

Víctor Cuervo

Víctor Cuervo

Hola bush,

Aquí te dejo el código. Lo que tienes que hacer es utilizar un formateador y aplicarlo a la raíz cuadrada.

double raiz = Math.sqrt(6);
DecimalFormat df = new DecimalFormat("#.000");
System.out.println(df.format(raiz));

Saludos.

Víctor Cuervo

marleni advincola

crear una aplicación para ingresar valores mayores de 2 dígitos. luego visualizar cuantos digitos pares tiene?

Víctor Cuervo

Víctor Cuervo

marleni, te recocimendo que la pregunta la pongas en el foro. http://dudasprogramacion.com/
Allí te podemos responder.

Saludos.

Víctor Cuervo

Compita

//Este programa imprime la hilera “7,7,7” en caso de que la suma de los dígitos del número ingresado sea divisible
//entre 7 y a la vez menor que 25

import javax.swing.JOptionPane;

public class SumaDigitos{

public static void main(String[] args) {

String a = JOptionPane.showInputDialog(“Ingresa un entero mayor que 0 y menor que 1 millón.”);
int num = Integer.parseInt(a);

if (num >0 && num < 1000000){ //Primera condición
int ent = num/100000; //Obtiene el valor de la centena del millar
int ent3 = (num – ent*100000)/10000; //Obtiene el valor de la decena del millar
int ent3a = (num – ent*100000 – ent3*10000)/1000; //Obtiene el valor de la unidad del millar
int ent3b = (num – ent*100000 – ent3*10000 – ent3a*1000)/100; //Obtiene el valor de la centena
int ent3c = (num – ent*100000 – ent3*10000 – ent3a*1000 – ent3b*100)/10; //Obtiene el valor de la decena
int ent3d = (num – ent*100000 – ent3*10000 – ent3a*1000 – ent3b*100 – ent3c*10); //Obtiene el valor de la unidad
int ent3z = ent + ent3 + ent3a + ent3b + ent3c + ent3d; //Suma cada uno de los valores
if(ent3z%7==0 && ent3z < 25){ //Segunda condición
JOptionPane.showMessageDialog(null,"7,7,7");
}
else { JOptionPane.showMessageDialog(null,"No cumple!"); //Opción si no se cumple la segunda condición
}
}
else JOptionPane.showMessageDialog(null,"¡Opción no válida!"); //Opción si no se cumple la primera condición

}
}

Víctor Cuervo

juan

Hola
Mi profesor de fundamentos de programacion me dejo el siguiente ejercicio pero no logro ralizarlo

Leer dos números enteros positivos y
determinar si el ultimo digito de un numero es
igual al ultimo digito del otro

Víctor Cuervo

Víctor Cuervo

Hola Juan,

Cuando los números son cadenas puedes acceder al último dígito con .length()-1 y .charAt()
Así que la comparación de los últimos dígitos puede hacerse de la siguiente manera:

if (n1.charAt(n1.length()-1) == n2.charAt(n2.length()-1)) { ...} 

Saludos.

Víctor Cuervo

ROBERTO CAICEDO CRUZ

en netbeans e tratado de correr este programa de contador de decimales de numero pero no se por que no me da un empujonsito seria de mucha ayuda muchas gracias amigos

int digitos;
double n,resultado=1;

/* do {
String texto;
texto = JOptionPane.showInputDialog(“Introduce tu numero”);
int numero=Integer.parseInt(texto);
digitos=0;
n=0;
} */

String texto;
texto = JOptionPane.showInputDialog(“Introduce tu numero”);
int numero=Integer.parseInt(texto);
digitos=0;
n=0;

while (n>1){ //;
//n=n/10;
n=Math.pow(10, digitos);
resultado=n/digitos;
digitos++;
}
n=n/10;
JOptionPane.showMessageDialog(null, “el numero tiene “+digitos+” cifras”, “Aviso”, JOptionPane.PLAIN_MESSAGE);
//System.out.println(“el numero tiene “+digitos+ ” digitos”);

}

este es el otro que e tratado y tampoco

double num,resultado=1,j=0;
int i=0,contador=0,cifra;
num=Integer.parseInt(JOptionPane.showInputDialog(“ingrese el numero”));
while(resultado>=1){
j=Math.pow(10, i);
resultado=num/j;
i=i+1;
contador++;
}
contador–;
JOptionPane.showMessageDialog(null, “el numero tiene “+contador+” cifras”, “Aviso”, JOptionPane.PLAIN_MESSAGE);
}

Víctor Cuervo

cristian muñoz

xfa ayuda

Víctor Cuervo

cristian muñoz

Crear una página web, que se llame index.html, que debe tener dos enlaces: Números primos y Dígitos de un número
La página para los números primos, debe contener una caja de texto y un botón. Debe ejecutar el servlet que valide que el número ingresado sea mayor que 0. De cumplirse la condición, se debe verificar si ese número es primo.
La página de dígitos, debe contener una caja de texto y un botón. Debe ejecutar el servlet, que primero validará que el número sea mayor que 0 y si es así, se deberá presentar en pantalla, los dígitos que componen ese número.

Víctor Cuervo

Almendra Garro

No se si lo que hice está correcto 😛

//segundo número que empice con el número 3
public int segundoNumeroEmpieceTres(){
int snet = -1;
int contador = 0;
for(int i= 0; i = 0; i–){
if(n[i] % 10 == 3){
put= i;
}
}
return put;
}

Víctor Cuervo

Almendra Garro

Hola! ^_^

Me pidieron que cree un método que halle el segundo número que empiece con el número 3 y otro método que halle el último número cuya unidad sea 3.
Espero que me ayuden 🙂

Víctor Cuervo

ju4nch0

nesesito aser un programa que coja dos numesr de 40 digitos cada uno que sume reste multiplique y me diga cual >= o <= ya ise la suma pero no se como aser las demas esto es lo que yebo

package enterogrande;

import javax.swing.JOptionPane;

/**
*
* @author Administrador
*/
public class Enterogrande {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
grande n1 = new grande();
n1.traducir();
n1.imprimir();

grande n2 = new grande();
n2.traducir();
n2.imprimir();

grande p = new grande();
p = p.sumar(n1, n2);
p.imprimir();

}
}
class grande{
//ATRIBUTOS DE LA CLASE
int d40,d39,d38,d37,d36,d35,d34,d33,d32,d31,d30;
int d29,d28,d27,d26,d25,d24,d23,d22,d21,d20;
int d19,d18,d17,d16,d15,d14,d13,d12,d11,d10;
int d9,d8,d7,d6,d5,d4,d3,d2,d1,con=40;

String num;
//OPERACIONES A REALIZAR
public void traducir (){
inicializa();
num = JOptionPane.showInputDialog("ingrese el numero entero:");
d1 = Integer.parseInt(num.substring(con-1,con));
d2 = Integer.parseInt(num.substring(con-2, con-1));
d3 = Integer.parseInt(num.substring(con-3, con-2));
d4 = Integer.parseInt(num.substring(con-4, con-3));
d5 = Integer.parseInt(num.substring(con-5, con-4));
d6 = Integer.parseInt(num.substring(con-6, con-5));
d7 = Integer.parseInt(num.substring(con-7, con-6));
d8 = Integer.parseInt(num.substring(con-8, con-7));
d9 = Integer.parseInt(num.substring(con-9, con-8));
d10 = Integer.parseInt(num.substring(con-10, con-9));
d11 = Integer.parseInt(num.substring(con-11, con-10));
d12 = Integer.parseInt(num.substring(con-12, con-11));
d13 = Integer.parseInt(num.substring(con-13, con-12));
d14 = Integer.parseInt(num.substring(con-14, con-13));
d15 = Integer.parseInt(num.substring(con-15, con-14));
d16 = Integer.parseInt(num.substring(con-16, con-15));
d17 = Integer.parseInt(num.substring(con-17, con-16));
d18 = Integer.parseInt(num.substring(con-18, con-17));
d19 = Integer.parseInt(num.substring(con-19, con-18));
d20 = Integer.parseInt(num.substring(con-20, con-19));
d21 = Integer.parseInt(num.substring(con-21, con-20));
d22 = Integer.parseInt(num.substring(con-22, con-21));
d23 = Integer.parseInt(num.substring(con-23, con-22));
d24 = Integer.parseInt(num.substring(con-24, con-23));
d25 = Integer.parseInt(num.substring(con-25, con-24));
d26 = Integer.parseInt(num.substring(con-26, con-25));
d27 = Integer.parseInt(num.substring(con-27, con-26));
d28 = Integer.parseInt(num.substring(con-28, con-27));
d29 = Integer.parseInt(num.substring(con-29, con-28));
d30 = Integer.parseInt(num.substring(con-30, con-29));
d31 = Integer.parseInt(num.substring(con-31, con-30));
d32 = Integer.parseInt(num.substring(con-32, con-31));
d33 = Integer.parseInt(num.substring(con-33, con-32));
d34 = Integer.parseInt(num.substring(con-34, con-33));
d35 = Integer.parseInt(num.substring(con-35, con-34));
d36 = Integer.parseInt(num.substring(con-36, con-35));
d37 = Integer.parseInt(num.substring(con-37, con-36));
d38 = Integer.parseInt(num.substring(con-38, con-37));
d39 = Integer.parseInt(num.substring(con-39, con-38));
d40 = Integer.parseInt(num.substring(con-40, con-39));

}
public void inicializa(){
d1=d2=d3=d4=d5=d6=d7=d8=d9=d10=d11=d12=d13=d14=d15=d16=d17=d18=d19=d20=d21=d22=d23=d24=d25=d26=d27=d28=d29=d30=d31=d32=d33=d34=d35=d36=d37=d38=d39=d40=0;
}
public void imprimir(){
JOptionPane.showMessageDialog(null,d40+""+d39+""+d38+""+d37+""+d36+""+d35+""+d34+""+d33+""+d32+""+d31+""+d30+""+d29+""+d28+""+d27+""+d26+""+d25+""+d24+""+d23+""+d22+""+d21+""+d20+""+d19+""+d18+""+d17+""+d16+""+d15+""+d14+""+d13+""+d12+""+d11+""+d10+""+d9+""+d8+""+d7+""+d6+""+d5+""+d4+""+d3+""+d2+""+d1);

}
public int suma_digito(int x,int y,int guarda){
int p = x + y + guarda;
return (p=10)? 1 : 0;

}
public grande sumar(grande n1,grande n2){
grande p = new grande();
int guarda = 0;

p.d1 = suma_digito(n1.d1,n2.d1,guarda);
guarda = guarda (n1.d1,n2.d1,guarda);

p.d2 = suma_digito(n1.d2,n2.d2,guarda);
guarda = guarda (n1.d2,n2.d2,guarda);

p.d3 = suma_digito(n1.d3,n2.d3,guarda);
guarda = guarda (n1.d3,n2.d3,guarda);

p.d4 = suma_digito(n1.d4,n2.d4,guarda);
guarda = guarda (n1.d4,n2.d4,guarda);

p.d5 = suma_digito(n1.d5,n2.d5,guarda);
guarda = guarda (n1.d5,n2.d5,guarda);

p.d6 = suma_digito(n1.d6,n2.d6,guarda);
guarda = guarda (n1.d6,n2.d6,guarda);

p.d7 = suma_digito(n1.d7,n2.d7,guarda);
guarda = guarda (n1.d7,n2.d7,guarda);

p.d8 = suma_digito(n1.d8,n2.d8,guarda);
guarda = guarda (n1.d8,n2.d8,guarda);

p.d9 = suma_digito(n1.d9,n2.d9,guarda);
guarda = guarda (n1.d9,n2.d9,guarda);

p.d10 = suma_digito(n1.d10,n2.d10,guarda);
guarda = guarda (n1.d10,n2.d10,guarda);

p.d11 = suma_digito(n1.d11,n2.d11,guarda);
guarda = guarda (n1.d11,n2.d11,guarda);

p.d12 = suma_digito(n1.d12,n2.d12,guarda);
guarda = guarda (n1.d12,n2.d12,guarda);

p.d13 = suma_digito(n1.d13,n2.d13,guarda);
guarda = guarda (n1.d13,n2.d13,guarda);

p.d14 = suma_digito(n1.d14,n2.d14,guarda);
guarda = guarda (n1.d14,n2.d14,guarda);

p.d15 = suma_digito(n1.d15,n2.d15,guarda);
guarda = guarda (n1.d15,n2.d15,guarda);

p.d16 = suma_digito(n1.d16,n2.d16,guarda);
guarda = guarda (n1.d16,n2.d16,guarda);

p.d17 = suma_digito(n1.d17,n2.d17,guarda);
guarda = guarda (n1.d17,n2.d17,guarda);

p.d18 = suma_digito(n1.d18,n2.d18,guarda);
guarda = guarda (n1.d18,n2.d18,guarda);

p.d19 = suma_digito(n1.d19,n2.d19,guarda);
guarda = guarda (n1.d19,n2.d19,guarda);

p.d20 = suma_digito(n1.d20,n2.d20,guarda);
guarda = guarda (n1.d20,n2.d20,guarda);

p.d21 = suma_digito(n1.d21,n2.d21,guarda);
guarda = guarda (n1.d21,n2.d21,guarda);

p.d22 = suma_digito(n1.d22,n2.d22,guarda);
guarda = guarda (n1.d22,n2.d22,guarda);

p.d23 = suma_digito(n1.d23,n2.d23,guarda);
guarda = guarda (n1.d23,n2.d23,guarda);

p.d24 = suma_digito(n1.d24,n2.d24,guarda);
guarda = guarda (n1.d24,n2.d24,guarda);

p.d25 = suma_digito(n1.d25,n2.d25,guarda);
guarda = guarda (n1.d25,n2.d25,guarda);

p.d26 = suma_digito(n1.d26,n2.d26,guarda);
guarda = guarda (n1.d26,n2.d26,guarda);

p.d27 = suma_digito(n1.d27,n2.d27,guarda);
guarda = guarda (n1.d27,n2.d27,guarda);

p.d28 = suma_digito(n1.d28,n2.d28,guarda);
guarda = guarda (n1.d28,n2.d28,guarda);

p.d29 = suma_digito(n1.d29,n2.d29,guarda);
guarda = guarda (n1.d29,n2.d29,guarda);

p.d30 = suma_digito(n1.d30,n2.d30,guarda);
guarda = guarda (n1.d30,n2.d30,guarda);

p.d31 = suma_digito(n1.d31,n2.d31,guarda);
guarda = guarda (n1.d31,n2.d31,guarda);

p.d32 = suma_digito(n1.d32,n2.d32,guarda);
guarda = guarda (n1.d32,n2.d32,guarda);

p.d33 = suma_digito(n1.d33,n2.d33,guarda);
guarda = guarda (n1.d33,n2.d33,guarda);

p.d34 = suma_digito(n1.d34,n2.d34,guarda);
guarda = guarda (n1.d34,n2.d34,guarda);

p.d35 = suma_digito(n1.d35,n2.d35,guarda);
guarda = guarda (n1.d35,n2.d35,guarda);

p.d36 = suma_digito(n1.d36,n2.d36,guarda);
guarda = guarda (n1.d36,n2.d36,guarda);

p.d37 = suma_digito(n1.d37,n2.d37,guarda);
guarda = guarda (n1.d37,n2.d37,guarda);

p.d38 = suma_digito(n1.d38,n2.d38,guarda);
guarda = guarda (n1.d38,n2.d38,guarda);

p.d39 = suma_digito(n1.d39,n2.d39,guarda);
guarda = guarda (n1.d39,n2.d39,guarda);

p.d40 = suma_digito(n1.d40,n2.d40,guarda);
guarda = guarda (n1.d40,n2.d40,guarda);

return p;
}
}

Víctor Cuervo

Hugo Rodríguez

Buen día, un día me pusieron ese ejercicio y aunque lo resolví de forma un poco larga, no es más que matemática y un poco de bucles, ahí se los dejo:
import javax.swing.JOptionPane;

class contador{

public static void main (String[] args) {

double num, resultado=1,j=0;
int i=0,contador=0,cifra;

num=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número: “));

while(resultado>=1){

j=Math.pow(10,i);
resultado = num/j;

i=i+1;
contador=contador+1;

}

contador=contador-1;
JOptionPane.showMessageDialog(null,”El número tiene: “+contador+” cifras”,”Aviso”,JOptionPane.PLAIN_MESSAGE);

}

}

Víctor Cuervo

Víctor Cuervo

@Nana,
Ya tienes el ejemplo que transforma un número a texto en
http://lineadecodigo.com/java/convertir-un-numero-a-texto-con-java/

Espero que te sea de utilidad.

Víctor Cuervo

Víctor Cuervo

@Silvio Vileriño,

Muy bueno, te animas a escribirlo en la web. Mandanos un correo y te decimos como se hace. Así aparecerá registrado a tu nombre. ¿Qué te parece?

Víctor Cuervo

Silvio Vileriño

Te dejo una forma matematica de obtener los digitos de un numero N en cualquier base de numeracion K, la podrás publicar?

public class CalcularDigitos {

public static void main(String[] args) {
int number=1234;
System.out.println(“El numero ” + (int)number + ” tiene ” + getDigits(number, 10) + ” digitos”);
}

public static int getDigits(int number, int base){
return (int) (Math.floor(Math.log10(number)/Math.log10(base)) + 1);
}
}

Víctor Cuervo

Víctor Cuervo

@Nana,

Ese es muy buen ejemplo. Lo tenemos escrito y no lo habíamos subido a la web. Espero poder subirlo pronto. Te aviso por aquí.

Víctor Cuervo

Nana

Hola! necesito hacer un programa que lea el resultado de una suma, una resta o una multiplicación. De manera que si sumo 22 + 22, un JOptionPane me diga: La suma de veintidos (22) + veintidos (22) es cuarenta y cuatro (44)

Así con las tras operaciones.

Muchas gracias!!

Víctor Cuervo

hbringas

Hmm sinceramente no veo para quisieras aser que un numero tubiera comas entre si, tal ves sea curiosidad pero bueno aqui esta.. SOLO FUNCIONA CON 4 NUMEROS OJO.. y si estas estudiando esto como carrera echale ganas y ingenio!!
—————————–
class Prueba1051{
public static void main(String hbringas[]){
int x=2008;

String z=Integer.toString(x);

String a,b,c,d;
//sacamos cada numero x numero y se lo asignamos a la letra
a=z.substring(0,1);
b=z.substring(1,2);
c=z.substring(2,3);
d=z.substring(3,4);
// sencillo
System.out.println(a+”,”+b+”,”+c+”,”+d);

}

}

Víctor Cuervo

Sebastian

una pregunta, necesito separar los digitos de un numero… me podrias dar la linea?
ej: 2008
2,0,0,8

eso necesito
gracias

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*