2015-11-02 52 views
1

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

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

我需要执行几个语句的时候我StringBuilder str长度为1

  1. 与 “00”
  2. 未设置标志

任何帮助将取代STR不胜感激。

+0

您可以使用if语句。 – mmking

+0

那么,写这句话的意义在于消除if语句。我目前有这样庞大的逻辑写入。 – Actiwitty

+1

使用If else语句将会有更多的可读代码。 –

回答

0

AFAIK这是不可能的。在其他语言中,您可以使用昏迷操作符来实现该操作,但在java中不允许。这就是说,在一个三元操作中做多个动作通常是一个非常糟糕的做法:是的,你会保存大约4或5行代码,但是阅读,编辑会更困难,因此,进行调试。

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); 
} 
+1

由于'str'是一个'StringBuilder',请删除'str ='部分。 – Andreas