创建Java for循环以连接2组字符串

时间:2016-02-10 21:51:34

标签: java string list for-loop dictionary

我有 mantra -V a -F /some/path/with.%x.ifd

Map<String, String> prefixes

我正在尝试获取字符串输出 List<String> annotationProperties 每个条目(按顺序输入)。

是否有可用于连接这些的for循环?我需要将条目作为prefix: annotationProperty返回以用于XML输出。

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为annotationPropertiesprefix地图的关键。如果是这种情况,那么在Java 8中你可以这样做:

List<String> output = annotationProperties.stream()
        .map(prop -> String.format("%s: %s",  prefix.get(prop), prop))
        .collect(Collectors.toList());

stream被调用,因此您可以使用mapcollect

等流功能 调用

mapannotationProperties中的字符串转换为所需的输出

调用

collect将流转换回列表

如果你想使用for循环,那么你也可以这样做:

// The end size is known, so initialize the capacity.
List<String> output = new ArrayList<>(annotationProperties.size());
for (String prop : annotationProperties){
    output.add(String.format("%s: %s",  prefix.get(prop), prop));
}
  

设置变量是否等于.collect(Collectors.toList());

我们已经有一个!在这两种情况下,我们都创建了一个变量output,它是一个格式为prefix: property的字符串列表。如果你想使用这个列表,那么你可以像这样循环它:

for (String mystring : output) {
    // do xml creation with mystring
}

或者像这样:

for (int i = 0; i < output.size(); i++){
    String mystring = output.get(i);
    // do xml creation with mystring
}

或者像这样:

output.stream().forEach(mystring -> {
    // do xml creation with mystring
});