[ demon_01 @ 09.03.2011. 22:05 ] @
pozdrav, kako mogu razdvoji nubmer format exception na dvije poruke?
da bude jasnije kod programa za konverziju iz bilo kojeg u bilo koji brojni sistem u polju za unos broja unesem npr. k ispisat ce mi poruku for input Strig :k.... dalje ako unesem broj 12 a postavim da je baza 2 sto nije takodjer ce mi ispisat for input String: 12
eh sad kako da razdvojim te dvije greske kad unesem k da ispise NETACAN UNOS BROJA U BAZI 1-16, a kad unesem broj 12 po bazi 2 da mi ispise POGRESNA BAZA BROJA

UNAPRIJED HVALA
[ dule_ns @ 10.03.2011. 09:28 ] @
Pogledaj šta ti vraća e.getMessage(); il nam napiši.
[ demon_01 @ 10.03.2011. 13:25 ] @
u prvom slucaju kad unesem slovo č izbaci For input String:"č" a u drugom slucaju kad upisem 12 po bazi 2 isto For input String:"12"

kod e.printstacktrase(); kad unesem č ispise java.lang.NumberFormatException: For input string: "č"

u drugom slucaju kad unesem broj 12 po bazi 2 java.lang.NumberFormatException: For input string: "12"


[ dule_ns @ 10.03.2011. 15:02 ] @
Ajde molim te napiši kod.
[ demon_01 @ 10.03.2011. 17:26 ] @
public class pretvaranje {
private unos ulaz=new unos();

public void setUlaz(String broj, String baza1, String baza2) {
this.ulaz=new unos(broj, String.valueOf(baza1),String.valueOf(baza2));
}

public void setUlaz(String broj, int baza1, int baza2) {


ulaz.setBroj(broj);

ulaz.setBaza1(String.valueOf(baza1));
ulaz.setBaza2(String.valueOf(baza2));


}



public unos getUlaz() {
return ulaz;
}



public String pretvoriCijeliBrojUBazu()
{
try{

return Integer.toString(Integer.parseInt(ulaz.getBroj(), Integer.parseInt(ulaz.getBaza1())),Integer.parseInt(ulaz.getBaza2()));

}
catch(NumberFormatException e){


JOptionPane.showMessageDialog(null, "pogresan unos"+e.getMessage());
e.printStackTrace();
return null;


}

}

public String pretvoriRealniBrojUBazu()
{

String p[]=null;
p=ulaz.getBroj().split(",");
String cijeli=p[0];
String dec=p[1];
setUlaz(cijeli, ulaz.getBaza1(), ulaz.getBaza2());
String rez=pretvoriCijeliBrojUBazu();
rez+=",";
float dekad=0;

for(int i=0;i<dec.length();i++)
{

if(dec.charAt(i)=='a')
dekad+=(float)(10 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else if(dec.charAt(i)=='b')
dekad+=(float)(11 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else if(dec.charAt(i)=='a')
dekad+=(float)(12 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else if(dec.charAt(i)=='a')
dekad+=(float)(13 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else if(dec.charAt(i)=='a')
dekad+=(float)(14 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else if(dec.charAt(i)=='c')
dekad+=(float)(15 * Math.pow(Integer.parseInt(ulaz.getBaza1()),-(i+1)));
else
dekad+=(float) (Integer.parseInt(String.valueOf(dec.charAt(i))) * Math.pow(Integer.parseInt(ulaz.getBaza1()), -(i+1)));

}

String a=String.valueOf(dekad);
String cifre="0123456789abcdef";

for(int i=0;i<5;i++)
{
int cifra=(int) (dekad * Integer.parseInt(ulaz.getBaza2()));
dekad=dekad*Integer.parseInt(ulaz.getBaza2())-cifra;
char c=cifre.charAt(cifra);
rez+=c;
}
return rez;
}
}

//ovo je kod za kontroler





public class unos {
private String broj, baza1, baza2;

public unos() {

}

public String getBaza1() {
return baza1;
}

public String getBaza2() {
return baza2;
}

public String getBroj() {
return broj;
}

public void setBaza1(String baza1) {
this.baza1 = baza1;
}

public void setBaza2(String baza2) {
this.baza2 = baza2;
}

public void setBroj(String broj) {
this.broj = broj;
}

public unos(String broj, String baza1, String baza2) {
this.broj = broj;
this.baza1 = baza1;
this.baza2 = baza2;
}
}

//a ovo za model
[ dule_ns @ 11.03.2011. 07:14 ] @
Pretpostavljam da ti je problem

Code:
return Integer.toString(Integer.parseInt(ulaz.getBroj(), Integer.parseInt(ulaz.getBaza1())),Integer.parseInt(ulaz.getBaza2()));


Možeš recimo da taj jedan red razbiješ u više redova i da svaki staviš u try-catch blok, tako ćeš znati prilikom čega je došlo do greške.
[ demon_01 @ 11.03.2011. 13:27 ] @
pokusao sam
problem je sto kad razdvojim Integer.parseInt(ulaz.getBroj(),ulaz.getBaza1()); će takodjer izbacit gresku i kad unesem pogresnu bazu broja i kad unesem npr.č
u oba slucaja odma izbacuje gresku...
[ dule_ns @ 11.03.2011. 14:59 ] @
Pa sad postavlja se pitanje šta je tu greška.

Ako sam dobro shvatio broj A1 za bazu 16 sve je ok, al za isti broj za bazu 10 baza ne valja - znam da ti menjam logiku programa, al tu nije problem u bazi nego u broju.

Znači, uvek prvo parsiraj bazu i proveri da li je to validan broj. Ako jeste validna baza parsiraj dalje i ako ne valja -> broj ne valja. Ako nije validna baza javi da nije validna baza.
[ demon_01 @ 11.03.2011. 21:43 ] @
hvala puno mislim da sam uspjeo :-)