Java - ayuda porfavor

 
Vista:

ayuda porfavor

Publicado por karen lopez (5 intervenciones) el 23/03/2006 06:07:28
hola estoy aprendiendo java y me pidieron que haga un programita que pida una entrada y qeu compare si es numero binario o no solo eso! quien me podria colaborar por favor???

aca esta lo que llevo pero hay un proble muy grande que solo verifica la primera posicion y de ahi decide si es un 1o un 0 es binario y de otro modo no lo es pero necesito qeu verifique toda la entrada por que en situaciones como esta 111110012 dice qeu es binario---

codigo java
-------------------------------

/*lo primero que hay q ue hacer es descomponer la entrada(String)
* a caracteres, luego se almacenan en cada posicion de un vector
* los caracteres, se recorre el vector pregunto si hay un caracter
* diferente al 0 1, he imprimir pantallazo*/

import java.util.Vector;

import javax.swing.JOptionPane;

public class Binarios{

private String NumBin;
private int num;
private String Resultado;

public Binarios(){

NumBin = JOptionPane.showInputDialog("Escriba el Número");


Resultado = "";
}

public void prueba(){

//se crea un vector que va guardar cada uno de los caracteres
//de la entrada
Vector digito = new Vector();
// un ciclo que almacena en cada una de las posiciones
//un caracter
int i = 0;

while(i < NumBin.length()){

// prefijo es un char de cada digito que fue transformado en String
// con el metodo valueof, para poderlo guardar en el vector de Strings
String prefijo= String.valueOf( (NumBin.charAt(i)));

//al vector digito se le guarda en la posicion i cada digito
digito.add(prefijo);
i++;
System.out.print(digito);
}
// recorre el vector en cada posicion para evaluar cada posicion
int f=0;
while( f<= digito.size()-1){

// este string coge el elemento en la posicion f
String temporal = (String)digito.elementAt(f);

// pasamos el string a un integer
int valorDelCaracterEnNumero = Integer.parseInt(temporal);


while(valorDelCaracterEnNumero<10){

int contadordif=0;
int contadormuch=0;

if(!((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))
{


Resultado="No, este no es binario";
JOptionPane.showMessageDialog( null, Resultado,
" No es Binario", JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}else {



Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
" es Binario", JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}
}

valorDelCaracterEnNumero=11;
}
f++;
}

/* for(int contador2=0;contador2<digito.size()-1;contador2++)
{
f--;
if(((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))

if(contador2==digito.size()-1){

Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
"Es Binario", JOptionPane.INFORMATION_MESSAGE);

}
}
}System.exit(0);

} */









public static void main (String args []){

Binarios j = new Binarios();
j.prueba();

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda porfavor

Publicado por Gilberto (378 intervenciones) el 23/03/2006 16:03:14
Me permites hacerte una sugerencia? comprueba directamente en NumBin si hay caracteres diferentes a 0 o 1,puedes escribir una función para ello, solo hay que pasarle la cadena leída de entrada:

boolean esBinario(String NumBin)
{
for(int i=0; i<NumBin.length(); i++)
if(NumBin.charAt(i) != '0' && NumBin.charAt(i) != '1')
return false;
return true;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar