if语句帮助何时使用逗号和空格

时间:2017-05-09 02:29:14

标签: java if-statement spaces

基本上我已经构建了一个字符串,我需要在何时使用逗号和空格放置if语句。所以基本上我需要它在第一个元素之后而不是在最后一个元素之后。

这是我目前的代码:

它返回的输出是

“thing1thing2thing3”

我想将输出设为

“thing1,thing2,thing3”

我需要一个if语句作为何时放置逗号和空格的要求的一部分。

提前致谢。

3 个答案:

答案 0 :(得分:0)

这对您来说可能有点先进,但使用Java 8时非常容易(如果thingsCollection

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();

答案 1 :(得分:0)

我使用for循环而不是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] + ".");
        }
    }

答案 2 :(得分:-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;