3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
類似于以下內(nèi)容,Collectors.joining
根據(jù)需要使用索引和答案進(jìn)行映射:
return IntStream.range(0, answers.size()) .mapToObj(idx -> String.format("Q%s = %s", idx + 1, answers.get(idx))) .collect(Collectors.joining(", "))

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
String.format不適合格式化列表。通常,String.join更合適。
首先,創(chuàng)建一個(gè)用逗號(hào)連接的字符串列表:
List<String> strings = IntStream.rangeClosed(1, answers.size())
.mapToObj(x -> "Q" + x + "=" + answers.get(x - 1))
.collect(Collectors.toList());
然后,致電String.join:
String result = String.join(", ", strings);

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
String.format
對(duì)于此示例效果不佳,因?yàn)槟枰母袷街械恼嘉环麛?shù)量與列表大小完全相同。你最好構(gòu)建自己的字符串。但如果你想堅(jiān)持String.format
:
由于String.format
使用 varargs (這是一個(gè)數(shù)組),因此您可以簡(jiǎn)單地使用toArray()
. 請(qǐng)注意,格式中的占位符只能{}
是%d
,%s
等
return String.format("Q1=%s, Q2=%s, Q3=%s, Q4=%s, Q5=%s, ...", answers.toArray());
添加回答
舉報(bào)