相关疑难解决方法(0)

Java:将List <String>转换为String

JavaScript有 Array.join()

js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve
Run Code Online (Sandbox Code Playgroud)

Java有这样的东西吗?我知道我可以用StringBuilder自己解决一些问题:

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

...但是,如果像这样的东西已经是JDK的一部分,那就没有意义了.

java list

561
推荐指数
15
解决办法
43万
查看次数

在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:PHP的join()等数组的函数?

我想String[]加一个胶水串.这有功能吗?

php java arrays join

255
推荐指数
12
解决办法
13万
查看次数

用Java加入字符串集合的首选成语

给定一个字符串集合,如何在不使用外部库的情况下将它们加入普通Java中?

鉴于以下变量:

Collection<String> data = Arrays.asList("Snap", "Crackle", "Pop");
String separator = ", ";
String joined; // let's create this, shall we?
Run Code Online (Sandbox Code Playgroud)

这就是我在Guava中的表现:

joined = Joiner.on(separator).join(data);
Run Code Online (Sandbox Code Playgroud)

Apache Commons/Lang中:

joined = StringUtils.join(data, separator);
Run Code Online (Sandbox Code Playgroud)

但是在简单的Java中,真的没有比这更好的方法吗?

StringBuilder sb = new StringBuilder();
for(String item : data){
    if(sb.length()>0)sb.append(separator);
    sb.append(item);
}
joined = sb.toString();
Run Code Online (Sandbox Code Playgroud)

java string collections

21
推荐指数
4
解决办法
7873
查看次数

标签 统计

java ×4

string ×2

arrays ×1

collections ×1

join ×1

list ×1

php ×1