Да. Сравнение дает логическое значение, и оно может быть присвоено переменной, как и любое другое значение.
Вторая форма (с троичным оператором ?:
) является избыточной и не должна использоваться.
Стилистически, я обычно заключаю логические выражения в круглые скобки при назначении их значениям, как
boolean bool = (aString.indexOf(subString) != -1);
для того, чтобы провести четкое визуальное различие между двумя операторами, использующими символ =
, но это не обязательно.