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

Java String.format()在代码的return语句中做什么?,java,format,return,string-interpolation,Java,Format,Return,String Interpolation,有人能解释一下返回方法(String.format)是怎么回事吗? 另外,我想知道最后一个return语句中的代码是如何工作的 import java.util.Map; 导入java.util.HashMap; 公营剪纸机{ 公共静态void main(字符串[]args){ 字符串结果=石头剪纸(“布”、“石头”); 系统输出打印项次(结果); } 公共静态弦乐剪刀(弦乐演奏者1、弦乐演奏者2){ 映射规则=新建HashMap(); 规则。放置(“石头”、“剪刀”); 规则。放置(“纸张”、

有人能解释一下返回方法(String.format)是怎么回事吗?

另外,我想知道最后一个return语句中的代码是如何工作的

import java.util.Map;
导入java.util.HashMap;
公营剪纸机{
公共静态void main(字符串[]args){
字符串结果=石头剪纸(“布”、“石头”);
系统输出打印项次(结果);
}
公共静态弦乐剪刀(弦乐演奏者1、弦乐演奏者2){
映射规则=新建HashMap();
规则。放置(“石头”、“剪刀”);
规则。放置(“纸张”、“岩石”);
规则。放(“剪刀”、“布”);
if(player1.equals(player2)){
返回“平局”;
}
返回String.format(“玩家%d获胜”,规则.get(玩家1).equals(玩家2)?1:2;
}
}
我不明白的是:

String.format(“玩家%d获胜”,规则.get(玩家1).equals(玩家2)?1:2);

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

如果您正在谈论最后一条返回语句:

这称为字符串插值,您可以在此处了解更多信息:

但基本上,这意味着您将编写一个完整的句子,并在字符串中放置一个标记,如%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;

“发生了什么事”请问更具体的问题。我们不知道你指的是哪一个返回声明,也不知道是什么让你感到困惑。用选项来澄清你的问题。你不明白哪一部分<代码>获取(s1)<代码>等于(s2)<代码>格式(“玩家%d获胜”,?建议你画一个3x3的网格,写“石头”、“布”和“剪刀”左下为player 1,右上为player 2。对于每个单元格,按照逻辑填写返回值。现在您知道代码的作用了。如果您不了解方法的作用,您应该做的第一件事是查阅。如果您注意参数部分,您会注意到一个“格式字符串”链接,该链接指向一个什么是
%d
和其他百分比替换。谢谢,我还有一个问题。它是如何工作的:rules.get(s1).equals(s2)?1:2//我不知道这个返回方法如何与hashmap一起工作,并给了我正确的答案谁将赢得这个结果game@Hubert基本上,该部分获取s1并将其与s2进行比较。它基本上检查hashmap是否与您在代码中编写的匹配。例如,如果s1=“paper”和s2=“rock”然后,它将检查您是否在代码中输入了匹配项,例如:rules.put(“paper”,“rock”);s1是paper,s2是rock,并且您将该组合放入hashmap中。因此,当您使用get.equals检查它时,它返回true,这意味着s1(paper)胜利和岩石损失。部分说明如果值为真,则返回1;如果值为假,则返回2。结果:玩家%d赢=玩家1赢。s1赢了很多help@Hubert,请你把我的答案标为最好的,并对我的答案投赞成票,以防有帮助。