【发布时间】:2016-01-14 06:53:15
【问题描述】:
我目前正在做一个需要我写这个的活动:
为静态方法 stringHeads 编写一个定义,该方法输入一个整数数组 p 和一个字符串 s。对于 p 中的每个整数 n,该方法构建由 s 中的前 n 个字符组成的子字符串(或整个 s,如果 n 大于 s 的长度)。该方法返回这些子字符串的数组。
我的代码目前是这样的:
public static String[] stringHeads(int[] p, String s) {
String[] rad = new String[p.length];
int e = 0;
for (int b : p)
e = b - 1
for (int de = 0; rad.length > de; de++)
rad[de] = s.substring(0,e);
for (String str : rad)
return str;
}
//Just ignore the rest
int[] a = {4, 2, 3, 2, 0 };
String b = "Radon"
stringHeads(a,b)
输出应该是 "Rado" , "Ra", "Rad", "Ra", ""。
我目前遇到的错误是 String 无法转换为 String[]。
基本上我的问题是如何修复这个错误以及是否可以编写更好的代码。
【问题讨论】:
-
您的 stringHeads() 返回类型是 String[] 但您返回的是字符串。您应该完全传递完整的字符串数组。
-
return rad....... -
将
return str;替换为return rad;。删除最后一个循环。 -
导致您的错误是因为它期望返回类型为
String[],但是您尝试遍历rad并分别返回每个String str(因为它无论如何都不起作用)该方法在到达第一个return语句后终止)。您应该可以改用return rad;。
标签: java arrays string algorithm