【问题标题】:How to modify void class method so it returns the required information如何修改 void 类方法使其返回所需的信息
【发布时间】:2017-06-29 11:58:48
【问题描述】:

我写了一个类,它有一个完整的静态方法集合。我的一个静态方法接受一个字符串作为参数。我应该向 John Mike Baldibanga 等方法发送一个名称,它应该返回一个仅包含前两个名称的首字母和完整姓氏的字符串。

所以如果我将 John Mike Baldibanga 发送到我的方法,我希望它返回 J·M·巴尔迪班加。

到目前为止,我只能弄清楚如何使用 void 使该方法起作用。

    public static void Theinitials(String z){

        String s []= z.split(" ");

                System.out.print(s[0].charAt(0) + " ");

                System.out.print(s[1].charAt(0)+ " ");
            System.out.println(s[2]);


    }

这是我目前用来调用该方法的:

String.Theinitials(name);

【问题讨论】:

  • 把 println 从方法中去掉。而是返回一个字符串并让调用代码在其中包含 printlns。
  • 为什么方法必须有void返回类型? String 返回类型适合这里。
  • 我试过了,但它不起作用。我试着写 String b = s[0].charAt(0) + " " + s[1].charAt(0)+ " " + s[2];返回 b;但它没有用
  • Sangharsh 我在将其更改为字符串返回类型时遇到了很多麻烦
  • return s[0].charAt(0) + " " + s[1].charAt(0)+ " " + s[2]; 应该有效。错误是什么?

标签: java class types return


【解决方案1】:

它应该返回一个字符串

所以返回一个String 而不是void 而不是System.out.printing,建立一个String resultreturn 那:

public static String theInitials(String z){
    String s []= z.split(" ");
    String result = s[0].charAt(0) + " " + s[1].charAt(0) + " " + s[2];
    return result;
}

如果您需要这样做,请稍后再打印:

String initials = WhatEverYourClassIsCalled.theInitials(name);
System.out.println(initials);

String.Theinitials(name); 看来,您的班级被称为String。这可能会让你有些头疼,我建议重命名它。

还要注意我是如何调用方法theInitials的,这称为lowerCamelCase,在Java中命名方法和变量时只是good practice

【讨论】:

  • 好的,现在我知道为什么它不起作用了 我输入了 String b == s[0].charAt(0) + " " + s[1].charAt(0) + " " + s[2];但我忘记将方法从 void 更改为 String。如果周围没有聪明人,我该怎么办?不知道...但感谢大家的帮助
  • 乐于助人,别忘了点击复选标记接受答案和灰色向上箭头投票。
【解决方案2】:

void 方法是没有返回类型的方法。我认为您正在尝试返回一个字符串,只需像这样更改方法返回类型:

public static String Theinitials(String z){

    String s []= z.split(" ");
    String str;

    str = (s[0].charAt(0) + " ");
    str = (str + (s[1].charAt(0)+ " "));
    str = (str + s[2]);

    return str;
}

这应该创建一个字符串 str ,该字符串将由您导出到控制台的字符串组成。然后你返回那个字符串。

【讨论】:

    【解决方案3】:

    到目前为止,我只能弄清楚如何使该方法起作用 使用 void。

    void 根本不应该返回任何值。

    如果您真的想知道使用 void 的方法,请在类中声明一个私有静态成员并将要返回的值分配给该静态变量。 [虽然不是很推荐,但既然你问了]

    最好的选择是让你的方法返回String

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多