String.format() 在我的代码的 return 语句中做了什么?
What does String.format() do inside the return statement of my code?
谁能解释一下return方法(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 语句:
这称为字符串插值,您可以在此处阅读更多相关信息:Java - Including variables within strings?
但基本上这意味着您将写一个完整的句子,并在字符串中放置一个标记,例如 %s 或其他,以指示在使用 String.format( ).
它可以让您避免使用 + 号来分隔字符串和变量。
String aStringVar = "MyString";
int anIntVar = 5;
// Line below is the same as: "A string:" + aStringVar + "; and a number " + anIntVar + ";"
String interpolatedString = String.format("A String: %s; and a number %2d;", aStringVar, anIntVar);
System.out.println(interpolatedString);
// Console result: A String: MyString; and a number 5;
谁能解释一下return方法(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 语句:
这称为字符串插值,您可以在此处阅读更多相关信息:Java - Including variables within strings?
但基本上这意味着您将写一个完整的句子,并在字符串中放置一个标记,例如 %s 或其他,以指示在使用 String.format( ).
它可以让您避免使用 + 号来分隔字符串和变量。
String aStringVar = "MyString";
int anIntVar = 5;
// Line below is the same as: "A string:" + aStringVar + "; and a number " + anIntVar + ";"
String interpolatedString = String.format("A String: %s; and a number %2d;", aStringVar, anIntVar);
System.out.println(interpolatedString);
// Console result: A String: MyString; and a number 5;