Есть ли более чистый способ сделать это, если заявление? - PullRequest
0 голосов
/ 26 февраля 2020
if(input.charAt(i) == '0' || input.charAt(i) == '1' || input.charAt(i) == '2') {
}

Есть ли способ сократить это, если условие или нет?

Ответы [ 3 ]

3 голосов
/ 26 февраля 2020

Вы можете проверить, соответствует ли символ какому-либо индексу в общем String. Мол,

if ("012".indexOf(input.charAt(i)) > -1) {

}
2 голосов
/ 26 февраля 2020

Может быть, немного более читабельным (в java 9 +)

if (Set.of('0', '1', '2').contains(input.charAt(i))) {

}
0 голосов
/ 26 февраля 2020

Вы можете сделать его короче , назначив результат поиска символа в переменной (но все равно три проверки на равенство).

char c = input.charAt(i);
if(c == '0' || c == '1' || c == '2') {
}

Вы можете посмотреть другие ответы, например, создать Set / Array и выполнить , содержащую проверку, увеличится ли количество проверок на равенство в будущем. ИМО, три чека должны быть в порядке, чтобы быть написаны как есть.

...