Не совсем уверен, что вы хотите сделать здесь, или почему вы хотите это сделать. Кроме того, я сосредоточусь на вашем конкретном c вопросе, а не на использовании вами Scanner
.
Есть ли что-то в выражении if
вашего примера кода, которое вам не нравится?
Почему вы хотите использовать троичный оператор?
Итог: я думаю, что троичный оператор плохо подходит для того, что вы пытаетесь сделать.
Тернарный оператор Java - это однострочный способ написания упрощенного присваивания if...else...
. В вашем примере кода у вас есть if
, но нет else
- и нет очевидного назначения - если вы не хотите присвоить результат этой строке ...
input.replace(replaceString, newString);
... в строковую переменную. Я могу быть совершенно неправ относительно вашего намерения.
Значения троичного оператора (после знака вопроса и разделенного двоеточием) можно назначать методами, если методы возвращают ожидаемый тип ,
Следующее использует троичный оператор:
//
// BAD use of the ternary operator - NOT RECOMMENDED:
//
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
String input = userInput.next();
boolean choice = true;
String replaced = (choice == true) ? whenTrue(userInput, input) : null;
}
private static String whenTrue(Scanner userInput, String input) {
System.out.println("Enter string to replace");
String replaceString = userInput.next();
System.out.println("Enter new string");
String newString = userInput.next();
return input.replace(replaceString, newString);
}
Вам было бы лучше использовать if
, по моему мнению.