我的作业遇到了麻烦,现在已经抓了很长时间了。这是标准 - 您的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
,然后将参数names
从String
更改为String[]
。
之后,您会注意到您也应该更改:
- 从
String
到String[]
的返回类型 -
names.substring
至names[i].substring
-
names[i].length
到names[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;
}
}