基本上我已经构建了一个字符串,我需要在何时使用逗号和空格放置if语句。所以基本上我需要它在第一个元素之后而不是在最后一个元素之后。
这是我目前的代码:
它返回的输出是
“thing1thing2thing3”
我想将输出设为
“thing1,thing2,thing3”
我需要一个if语句作为何时放置逗号和空格的要求的一部分。
提前致谢。
答案 0 :(得分: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();
答案 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;