2016-09-01 46 views
0

有沒有一種方法,包括一個簡單的,如果一個Java字符串內聲明作爲參數傳遞給函數,如下面的例子Java。如果內部字符串聲明爲函數的參數

int TotalFiles = 3; 
JOptionPane.showMessageDialog(frame, 
        "Created " + TotalFiles + " file" + (if(TotalFiles>1){"s"}) + "."); 
+0

提示:學習java命名約定。變量名稱爲camelCase;他們不開始大寫。 – GhostCat

回答

1

嘗試:(totalFiles>0 ? "s" : "sometThingElse")

1

使用三元運算符。

JOptionPane 
    .showMessageDialog(
     frame, 
     "Created " + TotalFiles + " file" + (TotalFiles > 0 ? "s": "") + "." 
); 

我還建議:

  • 命名您在camelBack變量,而不是CamelCase
  • 學習一下String格式更容易閱讀/維護格式化
+0

我更喜歡使用括號來清楚說明這不是'TotalFiles> 0? 「s」:(「」+「。」) –

+0

@PeterLawrey是有道理的。起初我實際上誤解了你的評論。 – Mena

1

是,使用三元運營商。

JOptionPane.showMessageDialog(frame, "Created " + TotalFiles + " file" + (TotalFiles > 0 ? "s" : "") + "."); 

三元需要這樣的表達如(TotalFiles > 0),進行比較,並且如果它是真實的返回?後的值,否則返回值後:

這是equivilant到設計一個返回私有方法一個基於表達式的字符串:

private String isMultipleFiles(int totalFiles) 
{ 
    if(totalFiles > 0) 
     return "s"; 
    else 
     return ""; 
}