相关疑难解决方法(0)

在Java中构建一系列分隔项的最佳方法是什么?

在Java应用程序中工作时,我最近需要组装一个以逗号分隔的值列表,以传递给另一个Web服务,而无需事先知道有多少元素.我能想出的最好的东西是这样的:

public String appendWithDelimiter( String original, String addition, String delimiter ) {
    if ( original.equals( "" ) ) {
        return addition;
    } else {
        return original + delimiter + addition;
    }
}

String parameterString = "";
if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," );
if ( anotherCondition ) parameterString = appendWithDelimiter( parameterString, "anotherElementName", "," );
Run Code Online (Sandbox Code Playgroud)

我意识到这不是特别有效,因为在整个地方都会创建字符串,但我的目的是为了清晰而不是优化.

在Ruby中,我可以做这样的事情,感觉更优雅:

parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Run Code Online (Sandbox Code Playgroud)

但由于Java缺少连接命令,我无法弄清楚任何等价物.

那么,在Java中执行此操作的最佳方法是什么?

java string

305
推荐指数
12
解决办法
25万
查看次数

在java中增强for循环的最后一次迭代

有没有办法确定循环是否最后一次迭代.我的代码看起来像这样:

int[] array = {1, 2, 3...};
StringBuilder builder = new StringBuilder();

for(int i : array)
{
    builder.append("" + i);
    if(!lastiteration)
        builder.append(",");
}
Run Code Online (Sandbox Code Playgroud)

现在问题是我不想在最后一次迭代中附加逗号.现在有一种方法可以确定它是最后一次迭代还是我坚持使用for循环或使用外部计数器来跟踪.

java foreach for-loop conditional-execution

134
推荐指数
9
解决办法
7万
查看次数

以逗号分隔列表的最清晰方式?

在Java中用逗号分隔列表最清晰的方法是什么?

我知道几种方法,但我想知道最好的方法是什么("最佳"意味着最清晰和/或最短,而不是最有效.

我有一个列表,我想循环它,打印每个值.我想在每个项目之间打印一个逗号,但不是在最后一个项目之后(也不是在第一个项目之前).

List --> Item ( , Item ) *
List --> ( Item , ) * Item
Run Code Online (Sandbox Code Playgroud)

样品溶液1:

boolean isFirst = true;
for (Item i : list) {
  if (isFirst) {
    System.out.print(i);        // no comma
    isFirst = false;
  } else {
    System.out.print(", "+i);   // comma
  }
}
Run Code Online (Sandbox Code Playgroud)

示例解决方案2 - 创建子列表:

if (list.size()>0) {
  System.out.print(list.get(0));   // no comma
  List theRest = list.subList(1, list.size());
  for (Item i : theRest) {
    System.out.print(", "+i);   // comma
  }
}
Run Code Online (Sandbox Code Playgroud)

样品溶液3:

  Iterator<Item> i = …
Run Code Online (Sandbox Code Playgroud)

java pretty-print

100
推荐指数
7
解决办法
9万
查看次数

如何发出以逗号分隔的列表?

这非常简单,但我看到了许多变种,我在其他地方看不到自己的做法.鉴于:

Iterable<String> strings;
Run Code Online (Sandbox Code Playgroud)

创建一个包含所有字符串的String,以逗号分隔.

java

2
推荐指数
2
解决办法
2657
查看次数