我在分配作业时遇到了麻烦,而且很长一段时间以来我一直在挠头。这是标准-
您的EmployeeNames类需要具有一个名为convertName()
的静态方法。
该方法应接受姓氏array
作为输入参数。
该方法应返回array
格式的名称(名字的中间和名字的缩写)。
对于每个元素,它应该确定名称的第一个首字母和中间首字母,并正确设置其格式(例如,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
”错误,它现在甚至无法正常工作。但是即使那样,我也不知道该怎么办。有人可以帮忙吗?
答案 0 :(得分:2)
处理完所有名称后,该方法应返回格式化的 名称数组返回到调用程序。
您必须更改返回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
对象。
答案 1 :(得分:0)
我收到“需要数组,但找到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;
}
}