【发布时间】:2023-03-05 11:15:01
【问题描述】:
谁能解释一下返回方法(String.format)是怎么回事?
另外,我想知道最后一个 return 语句中的代码是如何工作的?
import java.util.Map;
import java.util.HashMap;
public class RockPaperScissors {
public static void main(String []args) {
String result = RockPaperScissors("paper","rock");
System.out.println(result);
}
public static String RockPaperScissors(String player1, String player2) {
Map<String, String> rules = new HashMap<>();
rules.put("rock", "scissors");
rules.put("paper", "rock");
rules.put("scissors", "paper");
if (player1.equals(player2)) {
return "TIE";
}
return String.format("Player %d wins", rules.get(player1).equals(player2) ? 1 : 2);
}
}
我不明白的部分是这样的:
String.format("Player %d wins", rules.get(player1).equals(player2) ? 1 : 2);
它有什么作用,里面的%d是什么意思?
【问题讨论】:
-
“发生了什么”请提出更具体的问题。我们不知道您指的是哪个 return 语句,也不知道什么是具体让您感到困惑。使用edit 选项来澄清您的问题。
-
哪一部分你不明白?
get(s1)?equals(s2)?format("Player %d wins",? -
建议你画一个 3x3 的网格,在左边写下“rock”、“paper”和“scissors”给玩家 1,在上面写给玩家 2。对于每个单元格,遵循逻辑并填写返回值。现在您知道代码的作用了。
-
如果您不了解方法的作用,首先应该咨询its documentation。如果您注意 Parameters 部分,您会注意到一个“格式字符串”链接,该链接指向 full explanation
%d和其他百分比替换。
标签: java format return string-interpolation