XOR Operator in Java
At work today I came across an Eclipse feature for cleaning up Java code. It helps you to improve the code, for example to add
final to attributes or parameters, or to improve boolean expressions.
By chance I stumbled upon the operator for XOR (exclusive OR - only exactly one of the options is true). For XOR, you can just use a simple
^. This was new to me, even though I’ve been using Java since school days (more than 5 years).
jshell> boolean one = true; one ==> true jshell> boolean two = false; two ==> false jshell> (one && !two) || (!one && two); $3 ==> true jshell> one ^ two; $4 ==> true jshell> one ^ one; $5 ==> false jshell> two ^ two; $6 ==> false
Because it is a bitwise operator, it can also compare any primitive type:
jshell> 1 ^ 2; // 00000001 and 00000010 $7 ==> 3 jshell> 1 ^ 3; // 00000001 and 00000011 $8 ==> 2