在Java中存储一系列格式名称



我的作业遇到了麻烦,现在已经抓了很长时间了。这是标准 - 您的EmployeNames类需要具有名为convertName()的静态方法。该方法应接受姓氏的array作为输入参数。该方法应返回格式名称的array(首字母和中间姓名以及姓氏)。对于每个元素,它应确定正确的名称和格式的第一个初始和中间字母(ex,H。T. Smith)它应该将这些格式的名称中的每一个作为元素存储在格式的名称数组中。

处理所有名称后,该方法应将格式的名称 array返回到调用程序。

这是我的代码:

public class EmployeeNames {
    String[] names;
    public static String convertName(String names) {
        for (int i=0; i<10; i++) {
            names[i] = names.substring(names[i].length - 2, names[i].length);
        }
        return names;
    }
}

我现在甚至都没有工作,因为我收到了所需的' array,但是 java.lang.String发现了"错误"。但是即使在那之后,我不确定该怎么办。谁能帮忙?

处理所有名称后,该方法应返回格式 名称数组返回到调用程序。

您必须更改返回String[]而不是String的方法。

public static String[] convertName(String[] nameString) { ... }
                                              ^
                                              |
                     /* Note: I have changed it to avoid any confusions */

您还必须将names作为static

private static String[] names;

编辑:谢谢,@mark指出方法还应接受String[]而不是单个String对象。

问题

我正在收到所需的'数组,但是java.lang.string发现了'错误。

您有一个称为names的全局变量,但也是 在您的方法参数中称为 names的变量。

因为它们具有相同的名称,因此您的方法参数中的names隐藏了全局变量names。由于您的方法参数names被声明为String,而不是String[],它正在抛出该错误。

修复

要解决您的问题,请删除全局names,然后将参数namesString更改为String[]

之后,您会注意到您也应该更改:

  • StringString[]的返回类型
  • names.substringnames[i].substring
  • names[i].lengthnames[i].length(),因为这是String的长度方法。

更改代码

更改后的代码:

public class EmployeeNames {
    public static String[] convertName(String[] names) {
        for (int i = 0; i < 10; i++) {
            names[i] = names[i].substring(names[i].length() - 2, names[i].length());
        }
        return names;
    }
}

最新更新