MMichele GenchiPochi postsIscritto daago, 2015Messaggi4720 ago 2015, 11:44Sulla 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; } }
MMichele GenchiPochi postsIscritto daago, 2015Messaggi4721 ago 2015, 16:38Ok fatto anche x i decimali, ho usato una serie di if nidificati e dei flag:, Flag segno, flag virgola, Ora sto studiando come fare la conversione generica in modo da usare l'ereditarietà ed avere un unico per tutte le conversioni