string.format()在我的代码的return语句中做什么?

4jb9z9bj  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(510)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
有人能解释一下返回方法(string.format)是怎么回事吗?
另外,我想知道最后一个return语句中的代码是如何工作的?

  1. import java.util.Map;
  2. import java.util.HashMap;
  3. public class RockPaperScissors {
  4. public static void main(String []args) {
  5. String result = RockPaperScissors("paper","rock");
  6. System.out.println(result);
  7. }
  8. public static String RockPaperScissors(String player1, String player2) {
  9. Map<String, String> rules = new HashMap<>();
  10. rules.put("rock", "scissors");
  11. rules.put("paper", "rock");
  12. rules.put("scissors", "paper");
  13. if (player1.equals(player2)) {
  14. return "TIE";
  15. }
  16. return String.format("Player %d wins", rules.get(player1).equals(player2) ? 1 : 2);
  17. }
  18. }

我不明白的是:

  1. String.format("Player %d wins", rules.get(player1).equals(player2) ? 1 : 2);

它做什么?它的意义是什么 %d 在里面?

vsnjm48y

vsnjm48y1#

如果您谈论的是上一个return语句:
这被称为字符串插值,您可以在这里阅读更多关于它的内容:java-包括字符串中的变量?
但基本上,这意味着您将编写一个完整的句子,并在字符串中放置一个标记,例如%s或other,以指示使用string.format()格式化后将存在的变量类型。
它允许您避免使用+符号来分隔字符串和变量。

  1. String aStringVar = "MyString";
  2. int anIntVar = 5;
  3. // Line below is the same as: "A string:" + aStringVar + "; and a number " + anIntVar + ";"
  4. String interpolatedString = String.format("A String: %s; and a number %2d;", aStringVar, anIntVar);
  5. System.out.println(interpolatedString);
  6. // Console result: A String: MyString; and a number 5;

相关问题