следующий код проверяет, есть ли у вас какие-либо повторяющиеся символы в строке, но я не понимаю предложение if:
public static boolean isUniqueChars(String str) {
int checker = 0;
for (int i = 0; i < str.length(); ++i) {
int val = str.charAt(i) - 'a';
if ((checker & (1 << val)) > 0)
return false;
checker |= (1 << val);
}
return true;
}
Я попытался найти некоторые ссылки, я новичок в смещении битов, все, что я понимаю, это то, что < сдвигает двоичный номер влево или вправо. Можете ли вы объяснить мне, как работает checker | = (1 < val)? и это выражение "if" также.