Najefikasniji i najjednostavniji naฤin da se osigura da je samo jedan uslov taฤan meฤu nekoliko uslova je koriลกtenje ekskluzivno ili (XOR) operater. Operacija XOR vraฤa true ako je jedan od operanada istinit, ali ne oba. U Javi moลพemo koristiti ^ (karet) simbol za izvoฤenje operacije XOR.
public class OnlyOneConditionIsTrue { public static void main(String[] args) { boolean condition1 = true; boolean condition2 = false; boolean condition3 = true; boolean onlyOneIsTrue = condition1 ^ condition2 ^ condition3; System.out.println("Only One Condition Is True: " + onlyOneIsTrue); } }
Isjeฤak koda iznad pokazuje XOR operator u akciji. Proฤimo kroz kod korak po korak:
1. Proglaลกavamo klasu imenovanom OnlyOneConditionIsTrue.
2. Unutar glavne metode definiramo tri logiฤka uvjeta sa razliฤitim vrijednostima.
3. Zatim koristimo XOR operator da provjerimo da li je samo jedan od ovih uslova taฤan.
4. Na kraju ispisujemo rezultat na konzolu.
Sada, istraลพimo neke biblioteke i funkcije povezane s naลกim problemom.
Java Boolean klasa i metode
The java.lang.Boolean class je klasa omotaฤa koja umotava logiฤku vrijednost. Ova klasa sadrลพi razliฤite usluลพne metode za manipulaciju i rad na booleovim vrijednostima.
Neke od najฤeลกฤe koriลกtenih metoda su:
- Boolean.parseBoolean(String s): Raลกฤlanjuje string kao logiฤku vrijednost, vraฤajuฤi true ako je string โtrueโ (neosjetljiv na velika i mala slova) i false u suprotnom.
- Boolean.valueOf(boolean b): Vraฤa odgovarajuฤu Booleovu instancu, keลกirajuฤi instance za istinite i netaฤne vrijednosti.
- Boolean.logicalXor(boolean a, boolean b): Vraฤa rezultat logiฤke operacije XOR izmeฤu dvije logiฤke vrijednosti.
Moลพemo koristiti Boolean.logicalXor metoda za postizanje istog rezultata kao i naลก prethodni primjer:
boolean onlyOneIsTrue = Boolean.logicalXor(condition1, Boolean.logicalXor(condition2, condition3));
Apache Commons Lang โ BooleanUtils
Pored ugraฤenih Java biblioteka, biblioteke treฤih strana kao npr Apache Commons Lang pruลพaju dodatne usluลพne programe i funkcije za rad s booleovim vrijednostima. The BooleanUtils class je dio commons-lang3 biblioteke i nudi nekoliko usluลพnih metoda za boolean i boolean objekte.
Neke od metoda ukljuฤuju:
- BooleanUtils.xor(boolean[] niz): Izvodi XOR preko niza logiฤkih vrijednosti.
- BooleanUtils.negate(boolean bool): Negira navedenu logiฤku vrijednost.
- BooleanUtils.toBoolean(int vrijednost): Pretvara cjelobrojnu vrijednost u odgovarajuฤu logiฤku vrijednost.
Za koriลกtenje BooleanUtils.xor metodom iz Apache Commons Langa, dodajte sljedeฤu ovisnost svom projektu:
Maven:
"`
"`
gradle:
"`
implementacija 'org.apache.commons:commons-lang3:3.12.0'
"`
Zatim moลพete koristiti refren metoda ovako:
import org.apache.commons.lang3.BooleanUtils; // ... boolean[] conditions = {condition1, condition2, condition3}; boolean onlyOneIsTrue = BooleanUtils.xor(conditions);
Ukratko, osiguravanje da je samo jedan uslov istinit meฤu nekoliko uslova je suลกtinska vjeลกtina za svakog Java programera. Koristeฤi XOR operator, Javu ugraฤenu Boolean klasu ili biblioteke treฤe strane kao ลกto je Apache Commons Lang, moลพemo efikasno postiฤi ovaj cilj i kreirati robusniji kod.