亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過從列表中獲取參數來使用 String.format 創建字符串

如何通過從列表中獲取參數來使用 String.format 創建字符串

Helenr 2023-11-01 21:54:25
我想從包含整數的列表的值創建一個帶有 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());}
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

類似于以下內容,Collectors.joining根據需要使用索引和答案進行映射:

return IntStream.range(0, answers.size())
            .mapToObj(idx -> String.format("Q%s = %s", idx + 1, answers.get(idx)))
            .collect(Collectors.joining(", "))


查看完整回答
反對 回復 2023-11-01
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

String.format不適合格式化列表。通常,String.join更合適。


首先,創建一個用逗號連接的字符串列表:


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);


查看完整回答
反對 回復 2023-11-01
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

String.format對于此示例效果不佳,因為您需要的格式中的占位符數量與列表大小完全相同。你最好構建自己的字符串。但如果你想堅持String.format

由于String.format使用 varargs (這是一個數組),因此您可以簡單地使用toArray(). 請注意,格式中的占位符只能{}%d,%s

return String.format("Q1=%s, Q2=%s, Q3=%s, Q4=%s, Q5=%s, ...", answers.toArray());


查看完整回答
反對 回復 2023-11-01
  • 3 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號