三元运算符中的多个语句

时间:2015-11-02 23:50:45

标签: java android

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

str.length() == 1 ? (str = str.replace(0, str.length(), "00")  && flag = false) : str = str.deleteCharAt(str.length() - 1);

StringBuilder str的长度为1

时,我需要执行几个语句
  1. 将str替换为“00”
  2. 取消设置标志
  3. 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

AFAIK是不可能的。在其他语言中,您可以使用昏迷运算符实现此目的,但在java中不允许这样做。

话虽这么说,在三元操作中执行多个操作通常是一种非常糟糕的做法:是的,您将保存大约4或5行代码,但是它将更难以阅读,编辑,因此,调试。

答案 1 :(得分:0)

如果你绝对必须使用一个三元运算符来完成它的工作方式:

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);
}
相关问题