Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用3个参数在java中返回字符串_Java - Fatal编程技术网

使用3个参数在java中返回字符串

使用3个参数在java中返回字符串,java,Java,需要编写一个方法describePerson(),该方法接受3个参数,一个字符串给出一个人的 name,一个表示性别的布尔值(女性为true,男性为false),以及一个表示年龄的整数。该方法应返回如下示例所示格式的字符串: 百灵鸟是雌性。她两岁。 或 杰伊是男性。他一岁了 我不确定如何正确编写它(我的代码): “年”和“年”的结果也不同,但我不知道如何使其正确。尝试对性别使用“三元”或“条件运算符”。您希望输出“male”或“female”,而不是“true”或“false”,这只需将布尔值附

需要编写一个方法describePerson(),该方法接受3个参数,一个字符串给出一个人的
name,一个表示性别的布尔值(女性为true,男性为false),以及一个表示年龄的整数。该方法应返回如下示例所示格式的字符串:

百灵鸟是雌性。她两岁。 或 杰伊是男性。他一岁了

我不确定如何正确编写它(我的代码):

“年”和“年”的结果也不同,但我不知道如何使其正确。

尝试对性别使用“三元”或“条件运算符”。您希望输出“male”或“female”,而不是“true”或“false”,这只需将布尔值附加到字符串即可得到

假设“真”是女性:

String genderStr = (gender ?  "female" : "male");
String pronoun = (gender ?  "She" : "He");
是的,您可能希望返回一个
字符串,而不是一个int。

尝试使用“三元”或“条件运算符”作为性别。您希望输出“male”或“female”,而不是“true”或“false”,这只需将布尔值附加到字符串即可得到

假设“真”是女性:

String genderStr = (gender ?  "female" : "male");
String pronoun = (gender ?  "She" : "He");

是的,您可能希望返回
字符串而不是int。

descripebeperson
的返回值应为
字符串类型。此外,布尔值
gender
不是字符串,因此您需要自己将表达式写入return语句

String describePerson(String name, boolean gender, int age) {
    String yearString = (age == 1 ?  "year" : "years");

    if (gender) return (name + " is female. She is " + age + year + " old.");
    else return (name + " is male. He is " + age + year + " old.");
} 

除了所描述的其他问题外,请务必记住以“

结束字符串
describePerson
的返回值应为
String
类型。此外,布尔值
性别
不是字符串,因此您需要自己将表达式写入返回语句

String describePerson(String name, boolean gender, int age) {
    String yearString = (age == 1 ?  "year" : "years");

    if (gender) return (name + " is female. She is " + age + year + " old.");
    else return (name + " is male. He is " + age + year + " old.");
} 

除了上述其他问题外,请务必记住以

结束字符串,因为您要返回字符串,需要将返回类型更改为string

String describePerson(String name, boolean gender, int age) {
    String words="";
    if(gender==true)  return (name + "is "+gender+". "+"She is"+age+ "years old.);
    else
        return (name + "is "+gender+". "+"She is"+age+ "years old.);

} 

由于要返回字符串,因此需要将返回类型更改为字符串

String describePerson(String name, boolean gender, int age) {
    String words="";
    if(gender==true)  return (name + "is "+gender+". "+"She is"+age+ "years old.);
    else
        return (name + "is "+gender+". "+"She is"+age+ "years old.);

} 
1:使用String.format

2:引入变量heShe

string describePerson(String name, boolean gender, int age) 
{
    String x = gender ? "She" : "He";

    return (name + "is "+gender+". " + x + " is"+age+ "years old.);
} 
3:参数性别为布尔值,最好使用枚举1:使用String.format

2:引入变量heShe

string describePerson(String name, boolean gender, int age) 
{
    String x = gender ? "She" : "He";

    return (name + "is "+gender+". " + x + " is"+age+ "years old.);
} 
3:参数性别是布尔值,最好使用枚举

public String describePerson(String name, boolean gender, int age) {
    String describe = "%s is %s. %s is %d years old.";
    boolean isFemale = gender == true;
    String sexGender = isFemale  ? "female" : "male";
    String sexType = isFemale  ? "She" : "He";
    String finalDescribe = String.format(describe, name, sexGender, sexType, age);
    System.out.println(finalDescribe);
    return finalDescribe;
}
试试这个

public String describePerson(String name, boolean gender, int age) {
    String describe = "%s is %s. %s is %d years old.";
    boolean isFemale = gender == true;
    String sexGender = isFemale  ? "female" : "male";
    String sexType = isFemale  ? "She" : "He";
    String finalDescribe = String.format(describe, name, sexGender, sexType, age);
    System.out.println(finalDescribe);
    return finalDescribe;
}

最好的方法可能是预先计算语句的各个部分,然后将它们组合在一起:

String maleFemale;
String heShe;
String yearYears;

if (gender) {
  maleFemale = "female";
  heShe = "She";
}
else {
  maleFemale = "male";
  heShe = "He"
}
if (age == 1) [
  yearYears = "year";
}
else {
  yearYears = "years";
}
return name + " is " + maleFemale + ". " + heShe + " is " + age + " " + yearYears + " old.";

通常最好是把事情分解成你能理解的部分,而不是试图使用你不懂的奇特操作,将它们紧密地结合在一起,使您无法遵循程序流程并在操作之间添加println语句。

最好的方法可能是预先计算语句的各个部分,然后将其组合在一起:

String maleFemale;
String heShe;
String yearYears;

if (gender) {
  maleFemale = "female";
  heShe = "She";
}
else {
  maleFemale = "male";
  heShe = "He"
}
if (age == 1) [
  yearYears = "year";
}
else {
  yearYears = "years";
}
return name + " is " + maleFemale + ". " + heShe + " is " + age + " " + yearYears + " old.";

通常,最好将事情分解成您理解的部分,而不是尝试使用您不理解的奇特操作,将它们紧密地聚集在一起,使您无法遵循程序流程并在操作之间添加println语句。

首先,如果您想返回字符串,您的返回类型应该是String 所以方法签名应该是

String describePerson(String name, boolean gender, int age)
此外,您还需要根据性别打印他和她,因此必须存在if条件。 尝试使用以下代码代替现有方法

String describePerson(String name, boolean gender, int age) {
    String genderStr=null;
    String genderPro = null;
    String year = null;
    if(gender){
        genderStr = "female";
        genderPro = "She";
    }
    else{
        genderStr = "male";
        genderPro = "He";
    }
    if (age == 1) {
                   year = "year";
                 }
                 else {
                   year = "years";
                 }
    return (name + " is "+genderStr+". "+genderPro+" is "+age+ " "+ year+" old");
    } 

首先,若要返回字符串,则返回类型应为String 所以方法签名应该是

String describePerson(String name, boolean gender, int age)
此外,您还需要根据性别打印他和她,因此必须存在if条件。 尝试使用以下代码代替现有方法

String describePerson(String name, boolean gender, int age) {
    String genderStr=null;
    String genderPro = null;
    String year = null;
    if(gender){
        genderStr = "female";
        genderPro = "She";
    }
    else{
        genderStr = "male";
        genderPro = "He";
    }
    if (age == 1) {
                   year = "year";
                 }
                 else {
                   year = "years";
                 }
    return (name + " is "+genderStr+". "+genderPro+" is "+age+ " "+ year+" old");
    } 


我认为将
int-descripebeperson
更改为
String-descripebeperson
将是一个良好的开端“该方法应返回字符串”,那么为什么要让它返回int?只需继续嵌套if语句即可。有更多聪明的方法可以做到这一点,但在这种情况下,简单是好的。(方法应该返回字符串,而不是int。)我认为将
int-descripebeperson
更改为
String-descripebeperson
将是一个好的开始,“方法应该返回字符串”,那么为什么要让它返回int呢?只要继续嵌套if语句即可。有更多聪明的方法可以做到这一点,但在这种情况下,简单是好的。(并且该方法应该返回String,而不是int。)加上第三个用于“other”genders的返回语句!我真的很喜欢这个代码。我可能应该摆脱它,因为有些东西只能是真的或假的。我怎样才能不仅得到“年”,而且得到“年”?例如,他1岁。不是1“岁”注意,通常的惯例是说“0岁”而不是“0岁”,所以比较应该是
==1
>1
。再加上“其他”性别的第三个返回语句!我真的很喜欢这个代码。我可能应该摆脱它,因为有些东西只能是真的或假的。我怎样才能不仅得到“年”,而且得到“年”?例如,他1岁。不是1“年”注意,通常的惯例是说“0岁”而不是“0岁”,所以比较应该是
==1
>1
。你的意思是
string
还是
string
?另外,我认为返回的
字符串
存在一些问题。。。如前所述,它会产生类似“Foois true.她42岁”的内容。这不是我的反对票,但我通常避免指定一个值,然后有条件地覆盖该值。
words
变量在这里似乎也是多余的-如果使用了它,应该将其命名为
result
@jason-感谢您的反馈…(因此您还应该给其他人-1,因为他们也会犯这个“错误”)@lordkain我无意冒犯你。你给出的答案有几个问题,可能会让Java新手感到困惑或误导。我可以(尊重地)在评论中给你反馈,或者我可以编辑你的帖子(然后需要审查和批准)来纠正错误。无论哪种方式