PHP: Validar un numero entero

La siguiente funcion permite validar si una cadena esta compuesta unicamente de numeros.
Parametros: La cadena.
Devuelve: true en caso de que el parametro solo vengan numeros, false en caso contrario.

El codigo

function soloNumeros($laCadena) {
	$carsValidos = "0123456789";
	for ($i=0; $i<strlen($laCadena); $i++) {
	  if (strpos($carsValidos, substr($laCadena,$i,1))===false) {
		 return false; 
	  }
	}
	return true; 
}

//Ejemplo
$cad1 = "6878456";
$cad2 = "687a456";

if( soloNumeros($cad1) ) 
	echo "$cad1 es un Entero.<br/>";
else 
	echo "$cad1 NO es un Entero.<br/>";

if( soloNumeros($cad2) ) 
	echo "$cad2 es un Entero.<br/>";
else 
	echo "$cad2 NO es un Entero.<br/>";

/*
Salida:
6878456 es un Entero.
687a456 NO es un Entero.
*/

 

Si te gusto el ejemplo deja un comentario, igualmente si tienes otra versión Saludos.
 
 
Enlaces relacionados:
 
 
Anuncios

Determinar si un año es Bisiesto

En esta ocasion y a peticion de un visitante del blog les dejo el codigo para determinar si un Año es bisiesto.

//              Instituto Tecnologico de Zacatepec
//      Descripcion:  Validacion de si un anio es bisiesto
//      Author: Gonzalo Silverio   gonzasilve@gmail.com
//      Archivo: AnioBisiesto.java

import java.util.GregorianCalendar;

public class AnioBisiesto {

   public static void main(String[] args) {

      String res = new String();
      for(int i=2000; i<=2012; i++)
      {
         res = esBisiesto(i) ? "Anio bisiesto" : "Anio NO bisiesto";
         System.out.println(i+" "+res);
         System.out.println("Comprobando con clase java GregorianCalendar...");
         res = esBisiestoJava(i) ? "Anio bisiesto" : "Anio NO bisiesto";
         System.out.println(i+" "+res+"\n----------");
      }
   }
   
   private static boolean esBisiesto(int anio)
   {
      int elanio = anio;

      if ((elanio % 4 == 0) && ((elanio % 100 != 0) || (elanio % 400 == 0)))
         return true;
      else
         return false;
   }
   
   private static boolean esBisiestoJava(int anio)
   {
      int elanio = anio;
      GregorianCalendar calendar = new GregorianCalendar();
      return calendar.isLeapYear(elanio);
   }

}

Parte de la salida de ejecucion en Netbeans:

Salida en Netbeans

Salida en Netbeans

Quien este interesado en el codigo solo basta con dejar su correo. Gracias x visitar. Hasta pronto.

Validar Numero entero en java

Ha veces es necesario comprobar si cierta cadena es un numero o no. Por ejemplo cuando deseamos guardar un dato numerico en una base de datos (campos edad, cantidad, etc), antes de enviarlos a la BD se deben validar para para que el DBMS no nos devuelva error.

El siguiente codigo muestra como validar si en una cadena que llega todos son numeros. Se supone de antemano que a la cadena se le han eliminado espacios al principio y al final.


/*
 Descripcion:
 Contiene un metodo que Valida si una cadena es un numero entero.
 author: gonzasilve@gmail.com
 fecha:  06/12/2009
 archivo CadenaEnteros.java
*/

public class CadenaEnteros
{
 //Devuelve true si en una cadena que llega todos son numeros, false en caso contrario
 public boolean esEntero(String cad)
 {
 for(int i = 0; i<cad.length(); i++)
 if( !Character.isDigit(cad.charAt(i)) )
 return false;

 return true;
 }

 public static void main(String args[])
 {
 CadenaEnteros cadena1 = new CadenaEnteros();
 //Probar con un numero entero valido:   Devuelve true
 System.out.println("\"3432465\" es entero: " + cadena1.esEntero("3432465"));
 //Probar con una cadena invalida:   Devuelve false
 System.out.println("\"34hola\" es entero: " + cadena1.esEntero("34hola"));
 //Probar con una cadena invalida:   Devuelve false
 System.out.println("\"23.5\" es entero: " + cadena1.esEntero("23.5"));
 }
}

Basicamente el metodo recorre la cadena caracter por caracter y comprueba si NO es un digito, si alguno no lo es, devuelve false. Si ninguno fue false llegara la instruccion return true y terminara el metodo.
Ojo, este metodo solo valida NUMERO ENTEROS, los numeros flotantes (con punto decimal) se deben validar con otro metodo. Si se intenta validar un numero flotante con este metodo siempre devolvera false (pues el caracter punto ( . ) no es un digito).

Enseguida se muestra una imagen de la compilacion y ejecucion de la prueba de este metodo en mi sistema Ubuntu.

Aunque la implementacion de esto se puede hacer de muchas formas aqui muestro la manera como se me ocurrio a mi. Es muy util por ejemplo para validar las cadenas introducidas en campos JTextField en una GUI que tenga campos en donde el usuario deba escribir un dato entero.

Espero que le sirva a alguien, hasta pronto.

}

Validar cadena vacia en java

Ha veces es necesario comprobar si una cadena que introduce el usuario es una cadena vacia (o simplemente no escribio nada). Por ejemplo cuando se le solicita al usuario su nombre en un JTextField y el usuario no quiere escribirlo y simplemente escribe uno o varios espacios para intentar engañar al sistema y presiona <enter> o el boton de procesar.

El metodo Java que muestro a continuacion espera recibir una cadena y devuelve true si todos los caracteres son espacio.


/*
 Descripcion:
 Contiene un metodo que Valida si una cadena todos son espacios.
 author: gonzasilve@gmail.com
 fecha:  06/12/2009
 archivo Cadenaespacios.java
*/

public class CadenaEspacios
{
 //Devuelve true si en una cadena que llega todos son espacios, false en caso contrario
 public boolean sonEspacios(String cad)
 {
 for(int i =0; i<cad.length(); i++)
 if(cad.charAt(i) != ' ')
 return false;

 return true;
 }

 public static void main(String args[])
 {
 CadenaEspacios cadena1 = new CadenaEspacios();
 //Devuelve true
 System.out.println("Cadena \"       \" Son espacios: " + cadena1.sonEspacios("        "));
 //Devuelve false
 System.out.println("Cadena \" hola7   \" Son espacios: " + cadena1.sonEspacios(" hola7   "));
 //Devuelve false
 System.out.println("Cadena \"756   \" Son espacios: " + cadena1.sonEspacios("756   "));
 }
}

Como se puede ver el metodo simplemente toma caracter por caracter y lo compara si no es igual al caracter ‘ ‘ (espacio) si  alguno no es espacio (se cumple la condicion if) devuelve false; lo que significa  que en la cadena NO todos los caracteres son espacios. Si el if no se cumple ninguna vez, se ejecuta la instruccion return true; lo que significa que todos los caracteres de la cadena son espacios.

A continuacion muestro una imagen de la compilacion y ejecucion de la prueba de este metodo en mi S.O. Ubuntu.

Algunos pueden pensar que es mas facil escribir un codigo como:


if( cadena.equals(" ") )

Pero en ese caso se esta comparando toda la cadena con un solo espacio, pero eso va a devolver true solo si la cadena tiene un solo espacio, pero (otro pero mas) ¿y si la cadena son varios espacios?, en ese caso el if anterior no se cumpliria (un espacio es diferente de varios espacios).

bueno por otra parte debo decir que el if del metodo SonEspacios() , este if:


 if(cad.charAt(i) != ' ')

se puede reemplazar por este otro:


 if( ! Character.isWhiteSpace( cad.charAt(i) ) )

Espero que alguien le sirva esta cosa, me despido, hasta pronto.

}


if( cadena.equals(" ") )

A %d blogueros les gusta esto: