[英]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時,我需要執行一些語句
任何幫助將不勝感激。
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.