如何通过从列表中获取参数来使用 String.format 创建字符串

我想从包含整数的列表的值创建一个带有 String.format 的字符串,如下所示 String.format("Q1={}, Q2={}, Q3={}, Q4={}" list) 。


private String createString(Player player){


List<Integer> answers= new ArrayList<>();

    answers.add(player.getQuestion1());

    answers.add(player.getQuestion2());

    answers.add(player.getQuestion3());

    answers.add(player.getQuestion4());

    answers.add(player.getQuestion5());

    answers.add(player.getQuestion6());

    answers.add(player.getQuestion7());

    answers.add(player.getQuestion8());

    answers.add(player.getQuestion9());

    answers.add(player.getQuestion10());

    return String.format("Q1={}, Q2={}, Q3={}, Q4={}, Q5={}, Q6={}, Q7={}, Q8={}, Q9={}, Q10={}", answers.stream().map(a -> a.toString());


}


Helenr
浏览 127回答 3
3回答

肥皂起泡泡

类似于以下内容,Collectors.joining根据需要使用索引和答案进行映射:return&nbsp;IntStream.range(0,&nbsp;answers.size()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mapToObj(idx&nbsp;->&nbsp;String.format("Q%s&nbsp;=&nbsp;%s",&nbsp;idx&nbsp;+&nbsp;1,&nbsp;answers.get(idx))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.joining(",&nbsp;"))

婷婷同学_

String.format不适合格式化列表。通常,String.join更合适。首先,创建一个用逗号连接的字符串列表:List<String> strings = IntStream.rangeClosed(1, answers.size())&nbsp; &nbsp; .mapToObj(x -> "Q" + x + "=" + answers.get(x - 1))&nbsp; &nbsp; .collect(Collectors.toList());然后,致电String.join:String result = String.join(", ", strings);

素胚勾勒不出你

String.format对于此示例效果不佳,因为您需要的格式中的占位符数量与列表大小完全相同。你最好构建自己的字符串。但如果你想坚持String.format:由于String.format使用 varargs (这是一个数组),因此您可以简单地使用toArray().&nbsp;请注意,格式中的占位符只能{}是%d,%s等return&nbsp;String.format("Q1=%s,&nbsp;Q2=%s,&nbsp;Q3=%s,&nbsp;Q4=%s,&nbsp;Q5=%s,&nbsp;...",&nbsp;answers.toArray());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java