基本上我已經建立了一個字符串,我需要將if語句放在何時使用逗號和空格。所以基本上我需要它是在第一個元素之後,而不是最後一個元素。如果語句有助於何時使用逗號和空格
這是我當前的代碼是:
,並返回輸出
「thing1thing2thing3」
我想使輸出爲
「thing1,thing2, thing3「
而且我需要一個if語句作爲何時放置逗號和空格的要求的一部分。
在此先感謝。
基本上我已經建立了一個字符串,我需要將if語句放在何時使用逗號和空格。所以基本上我需要它是在第一個元素之後,而不是最後一個元素。如果語句有助於何時使用逗號和空格
這是我當前的代碼是:
,並返回輸出
「thing1thing2thing3」
我想使輸出爲
「thing1,thing2, thing3「
而且我需要一個if語句作爲何時放置逗號和空格的要求的一部分。
在此先感謝。
大約有問題的一些不清楚的東西,所以下面的代碼是基於什麼我至今清楚。
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;
使用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();
測試人員僅使用Java 7,因此它不適用於我。 – John
我已經編輯它以使用Java 7以及! –
我會使用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] + ".");
}
}
你試過了什麼?如果你知道你需要一個逗號後跟一個空格,難道你不能簡單地將它連接到你現有的字符串(在第一個和第二個之間)?關於實際的if語句,假設你已經有了你的第二個字符串,你可以執行檢查來查看是否應該添加逗號/空格(也許如果第二個字符串不是空的)?我假設這是某種類型的家庭作業或鍛鍊,如果你想知道爲什麼我不只是在那裏拋出一個答案。 –
當我需要它多於一個元素,而不是在最後一個元素後面做逗號和空格。 – John
@John你可以在每個elemetn之前放置一個條件s!= null或爲空並放置(逗號+空格) –