viernes, noviembre 01, 2013

Obtener número de una cadena Alfanumérica

Obtener número de una cadena Alfanumérica

Esta función obtiene el primer numero real que encuentra en la cadena, no importa si esta en notación científica.




    public boolean containsNumber(String str){
        String aux="";
        for(int i=0;i<str.length();i++){
            aux=""+str.charAt(i);
            if(this.isNumeric(aux)){
                return true;
            }
        }
        return false;
    }  
    

    public double getFirstNumberFromString(String str){

        double num=Double.NaN;
        int i=0;
        int j=0;
        int p=0, p2=0;
        
        
        String aux="";
        String aux2="";
        
        while(j<str.length()){
                aux2=""+str.charAt(j);
                if(this.isNumeric(aux2)){
                    if(j-1>=0){
                    aux2=""+str.charAt(j-1);
                    if(aux2.equals("-")){
                        j=j-1;
                    }
                    }
                p=j;
                j=str.length();
                }
                j++;
        }
        i=p;
        while(i<str.length()){
            aux=str.substring(p,i+1);
            if(this.isNumeric(aux)){
                num=Double.parseDouble(aux);
            }
            
            i++;
        }
        System.out.println(num);
        return num;
    }

Convertir un numero Double a Cadena (Notación decimal Real)

Convertir un numero Double a Cadena (Notación decimal Real) No Notación Científica

Convierte:
1.0E-6
a una cadena
0.0000010

    public String doubleToString(double num){
        String str="",aux="",aux2="";
        aux=""+num;
        int exp=0;
        int p;
        boolean positivo=true;
        if(num<0){
            positivo=false;
        }
        System.out.println(num);
        if(aux.contains("E-")){
        exp=Integer.parseInt(aux.substring(aux.lastIndexOf("E")+1));
        exp=exp*(-1);
        str=""+aux.substring(0,aux.lastIndexOf("E"));
        str=str.replace("-","");
        while(exp>0){
            str="0"+str;
            exp--;
        }
        str=str.replace(".","");
        str=str.substring(0,1)+"."+str.substring(1);
        if(positivo==false){
            str="-"+str;
        }
        
        }else if(aux.contains("E")){
        
        exp=Integer.parseInt(aux.substring(aux.lastIndexOf("E")+1));
        int e=exp;
        str=""+aux.substring(0,aux.lastIndexOf("E"));
        if(str.contains(".")){
        int e2=str.length()-str.indexOf(".")-1;
        e=e-e2;
        int pt=str.indexOf(".")+exp;
        str=str.replace(".","");
        while(e>0){
            str=str+"0";
            e--;
        }
        if(pt<str.length()){
        str=str.substring(0,pt)+"."+str.substring(pt);
        }
        }

        
        }else{
            return aux;
        }
        return str;
    }

Saber si la cadena es un numero

Saber si la cadena es un numero
Esta booleana devuelve verdadero si TODO el contenido de la cadena es un Numero.


    public boolean isNumeric(String str){
        try{
        Double.parseDouble(str);
        return true;
        }catch(Exception ex){
           return false; 
        }
    }

Saber si una cadena contiene un Numero

Saber si una cadena contiene un Numero

Esta función booleana devuelve verdadero si existe un numero en la cadena.


    public boolean containsNumber(String str){
        String aux="";
        for(int i=0;i<str.length();i++){
            aux=""+str.charAt(i);
            if(this.isNumeric(aux)){
                return true;
            }
        }
        return false;
    }  
    
Recupera tu Informacion con este espectacular Programa de Recuperacion de Datos Alojamiento Web Profesional a un Precio Increible!