Ahoj, potřeboval bych pomoct, mám zadání úlohy na kontrolu DIC s následujícími podmínkami. 1) první dva znaky stringu musí být rovna "CZ" nebo "cz" 2) prvních devět čísel stringu se má vydělit 11ti 3) pokud je zbytek roven 10, poslední číslo ve stringu musí bý nula, pokud zbytek není deset, poslední číslo se musí rovnat tomu zbytku. Celé DIČ obsahuje vždy 12 znaků. Napadlo mě to naprogramovat takto:
public static void checkDIC(String s){
boolean cz = false;
boolean posledninula = false;
boolean poslednicislo = false;
String zkratka = s.substring(0,2);
String cislo = s.substring(2,11);
String nula = s.substring(11);
if(zkratka == "CZ" || zkratka == "cz"){
cz = true;
}
int zbytek = Integer.parseInt(s.substring(2,11)) % 11;
if(zbytek == 10 && nula == "0"){
posledninula = true;
}else{
if(nula == Integer.toString(zbytek)){
poslednicislo = true;
}
}
if((cz == true && posledninula == true) || (cz == true && poslednicislo == true)){
System.out.println("DIČ je platné");
}else{
System.out.println("DIČ je neplatné");
}
}
Problém je ten, že se mi boolean hodnoty nikdy nezmění na true a ať zadám jakékoli hodnoty, vždycky se mi vrátí zpět false u všech booleanů, tudíž, že je DIČ neplatné. Nemohl by mi někdo poradit, jak to zprovoznit? Mě nenapadá jiný způsob než tenhle. Platné DIČ je například CZ7801233540.