Тернарный оператор в java с несколькими операторами - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу написать несколько операторов в тернарном операторе .. Но не знаю, как писать. Я хочу вот так,

public static void main(String[] args) {

    String replaceString,newString;
    Scanner user_input=new Scanner(System.in);
    String input=user_input.next();
    boolean choice=true;
    if(choice==true){
        System.out.println("Enter string to replace");
        replaceString=user_input.next();
        System.out.println("Enter new string");
        newString=user_input.next();
        input.replace(replaceString, newString);
        }
}

Я хочу написать приведенный выше код в java, используя троичный оператор. Пожалуйста, помогите

1 Ответ

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

Не совсем уверен, что вы хотите сделать здесь, или почему вы хотите это сделать. Кроме того, я сосредоточусь на вашем конкретном 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, по моему мнению.

...