簡體   English   中英

三元運算符中的多個語句

[英]Multiple Statements in the Ternary Operator

在三元運算符中包含多個語句的正確語法是什么?

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. 未設置標志

任何幫助將不勝感激。

AFAIK這是不可能的。 在其他語言中,您可以使用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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM