我在互聯網上搜索過,但沒有找到好的解決方案。我不是一個好的開發人員,所以這對某些人來說可能太簡單了,但我在解決這個問題上浪費了太多時間。在我正在處理的這個專案中,我需要構建一個字串,該字串由 3 個布林值決定,有一個示例和我的錯誤解決方案:
boolean a;
boolean b;
boolean c;
protected String getMessage(){
String result = "";
if(a){
result = "Problem A"
}
if(b){
result = ", Problem B"
}
if(c){
result = ", Problem C."
}
return result ;
}
所以問題是,也許唯一真正的布林值可能是布林值 C,所以結果訊息將是“,問題 C”。
我要求良好的代碼質量,回傳一個字串并解決“,”和“。”的問題。
也許有人可以給出的解決方案是使用嵌套 if 例如 if (a && b) then "Problem A , Problem B." 但在這種情況下,我需要實作 8 if 條件和代碼復雜性很差。
有沒有更聰明的方法來做我的要求?
uj5u.com熱心網友回復:
您可以使用 StringJoiner
StringJoiner sj = new StringJoiner(", ", "", ".");
sj.add("Problem1");
System.out.println(sj.toString());
sj.add("Problem2");
System.out.println(sj.toString());
輸出
Problem1.
Problem1, Problem2.
uj5u.com熱心網友回復:
像這樣 ?
boolean a;
boolean b;
boolean c;
protected String getMessage() {
List<String> list = new ArrayList<>();
if (a) {
list.add("Problem A");
}
if (b) {
list.add("Problem B");
}
if (c) {
list.add("Problem C");
}
String result = String.join(", ", list) ".";
return result;
}
uj5u.com熱心網友回復:
這是做到這一點的一種方式。
List list = new ArrayList();
if (a) {
list.add("Problem A");
}
if (b) {
list.add("Problem B");
}
if (c) {
list.add("Problem C");
}
return list.toString().replace("[", "").replace("]", ".");
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381624.html
