因此,我有一个由自动生成的符号组成的单词列表。例如:hqst
。我将这个单词的每个符号转换为unicode并将其连接成点.
,如下所示:104.113.115.116
。
我写下一个lambda:
.map(word -> {
char[] symbols = word.toCharArray();
StringBuilder newWord = new StringBuilder();
for (int i = 0; i < symbols.length; i++) {
newWord.append((int) symbols[i]).append(".");
if (i == symbols.length - 1) {
newWord = new StringBuilder(newWord.substring(0, i));
}
}
return newWord.toString();
})
是否可以使用流API重写此匿名方法?
答案 0 :(得分:4)
是的。您可以使用String::chars
从单词中获取IntStream
,然后将每个int映射到String并使用joining collector进行收集:
.map(word -> word.chars()
.mapToObj(Integer::toString)
.collect(Collectors.joining("."))
)
答案 1 :(得分:0)
假设单词根据提供的样本值作为整数值存储在列表中(因为您没有提供完整的代码段)。我相信这会有所帮助。
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(104);
list.add(113);
list.add(115);
list.add(116);
String str = list.stream().map(word->word.toString()).collect(Collectors.joining( "." ));
System.out.println(str);
}