Sulla scia del codice consigliatomi da AndBin ho elaborato qualcosa di mio e ringrazio tanto per le dritte:
import baseNumerica.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String mioNumero="AB34";
System.out.println("La cifra da convertire "+mioNumero);
System.out.println();
BaseNumerica[] arrayX=new BaseNumerica[3];
arrayX[0]=new Binario();
arrayX[1]=new Decimale();
arrayX[2]=new Esadecimale();
for (BaseNumerica x:arrayX)
if (x.isOk(mioNumero))
System.out.println("E' un numero corretto in base "+x.getBASE());
else
System.out.println("Non é un numero corretto in base "+x.getBASE());
}
}
package baseNumerica;
public abstract class BaseNumerica {
private int base;
public BaseNumerica() {
System.out.println("Nessuna base");
}
public BaseNumerica(int base) {
setBase(base);
// System.out.println("Questo numero verrà analizzato in base "+base);
}
public boolean isOk(String stringa) {
for (char cifra:stringa.toCharArray())
if (!isOk(cifra))
return false;
return true;
}
abstract boolean isOk(char cifra);
package baseNumerica;
public class Binario extends BaseNumerica {
private final static int BASE=2;
public Binario() {
super(BASE);
}
public boolean isOk(String stringa) {
return super.isOk(stringa);
}
boolean isOk(char cifra) {
if (cifra=='0' || cifra=='1')
return true;
return false;
}
}