Java 三元运算符中的多语句

Java 三元运算符中的多语句,java,android,Java,Android,在我的三元运算符语句中有多个语句的正确语法是什么 str.length() == 1 ? (str = str.replace(0, str.length(), "00") && flag = false) : str = str.deleteCharAt(str.length() - 1); 当我的StringBuilder str的长度为1时,我需要执行几个语句 将str替换为“00” 未设置的标志 任何帮助都将不胜感激。恐怕这是不可能的。在其他语言中,您可以使用coma

在我的三元运算符语句中有多个语句的正确语法是什么

str.length() == 1 ? (str = str.replace(0, str.length(), "00")  && flag = false) : str = str.deleteCharAt(str.length() - 1);
当我的
StringBuilder str
的长度为1时,我需要执行几个语句

  • 将str替换为“00”
  • 未设置的标志

  • 任何帮助都将不胜感激。

    恐怕这是不可能的。在其他语言中,您可以使用coma操作符实现这一点,但java中不允许这样做


    这就是说,在一个三元操作中执行多个操作通常是一种非常糟糕的做法:是的,您将节省大约4或5行代码,但阅读、编辑和调试将更加困难。

    如果您绝对必须使用一个三元运算符执行操作,那么这就是如何完成的:

    flag = str.length() == 1 ?
        str.replace(0, str.length(), "00") == null :
        str.deleteCharAt(str.length() - 1) != null && flag;
    
    祝你好运,通过代码审查。正如其他人所建议的,if语句在这里是有意义的:

    if (str.length() == 1) {
         flag = false;
         str.replace(0, str.length(), "00");
    } else {
         str.deleteCharAt(str.length() - 1);
    }
    

    你可以只使用if语句。写这个语句的目的是去掉if-else语句。我目前已经编写了大量的逻辑。使用If-else语句将是可读性更强的代码。我同意这一点。但是,有没有一种方法可以在三元语句中实现呢?是的。如果StringBuilder长度为1,则我将标志设置为false,因为
    str
    StringBuilder
    ,请删除
    str=
    部分。