在我的三元运算符语句中有多个语句的正确语法是什么?
str.length() == 1 ? (str = str.replace(0, str.length(), "00") && flag = false) : str = str.deleteCharAt(str.length() - 1);
当StringBuilder str
的长度为1
非常感谢任何帮助。
答案 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);
}