2017-05-09 33 views
-2

基本上我已經建立了一個字符串,我需要將if語句放在何時使用逗號和空格。所以基本上我需要它是在第一個元素之後,而不是最後一個元素。如果語句有助於何時使用逗號和空格

這是我當前的代碼是:

,並返回輸出

「thing1thing2thing3」

我想使輸出爲

「thing1,thing2, thing3「

而且我需要一個if語句作爲何時放置逗號和空格的要求的一部分。

在此先感謝。

+0

你試過了什麼?如果你知道你需要一個逗號後跟一個空格,難道你不能簡單地將它連接到你現有的字符串(在第一個和第二個之間)?關於實際的if語句,假設你已經有了你的第二個字符串,你可以執行檢查來查看是否應該添加逗號/空格(也許如果第二個字符串不是空的)?我假設這是某種類型的家庭作業或鍛鍊,如果你想知道爲什麼我不只是在那裏拋出一個答案。 –

+0

當我需要它多於一個元素,而不是在最後一個元素後面做逗號和空格。 – John

+0

@John你可以在每個elemetn之前放置一個條件s!= null或爲空並放置(逗號+空格) –

回答

-1

大約有問題的一些不清楚的東西,所以下面的代碼是基於什麼我至今清楚。

String s = ""; 
boolean isComma = true; // true = comma, false = space. 
for (Thing thing : things) 
{ 
    if (things.getCategory() == thing.STUFF) 
    { 
     //Check if there already exists an entry within the String. 
     if (s.length() > 0) 
     { 
      //Add comma or space as required based on the isComma boolean. 
      if (isComma) 
      { 
       s += ", "; 
      } 
      else 
      { 
       s += " "; 
      } 
     } 
     s += thing.getName(); 
    } 
} 

if (s.equals("")) 
{ 
    s += "nothing"; 
} 
return s; 
+0

所以我試過了你的方法,現在它給了我「thing1,thing2,thing3」,所以我需要添加什麼來使它看起來像「thing1,thing2,thing3」? – John

+0

換行有's + =「,」;'到's + =「,」;' – dat3450

+0

您的解決方案適用於我。謝謝您的幫助。 – John

0

使用Java 8時(如果things是這可能是你有點先進,但它很容易一Collection

return Optional.of(things.stream() 
         .filter(thing -> thing.getCategory() == things.STUFF) 
         .collect(Collectors.joining(", "))) 
       .orElse("nothing"); 

如果您使用的是Java 7,這時你可以手動做到這一點:

StringBuilder sb = new StringBuilder(); 

for (Thing thing : things) { 
    if (things.getCategory() == some.STUFF){ 
     sb.append(thing.getName()).append(", "); 
    } 
} 

if (s.isEmpty()) { 
    return "nothing"; 
} 

return sb.delete(sb.length() - 2, sb.length()).toString(); 
+0

測試人員僅使用Java 7,因此它不適用於我。 – John

+0

我已經編輯它以使用Java 7以及! –

0

我會使用for-loop而不是for-each循環 - 只是因爲我認爲它不需要額外的計數器變量。這就是我如何處理這個問題。

String[] things = {"thing 1", "thing 2", "thing 3", "thing 4"}; 

    for(int i = 0; i < things.length; i++) 
    { 
     if(i < things.length - 1) 
     { 
      System.out.print(things[i] + ", "); 
     } 
     else 
     { 
      System.out.print(things[i] + "."); 
     } 
    } 
相關問題