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时,我需要执行几个语句
任何帮助都将不胜感激。恐怕这是不可能的。在其他语言中,您可以使用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=
部分。