返回字符串数组的递归函数(JAVA)

时间:2013-12-19 08:54:22

标签: java string recursion return-value

我在JAVA中需要一些帮助: 我有一个函数签名,我无法更改,我的函数需要递归并返回String数组,没有任何选项将其添加到签名中。

这是我的签名:

public String[] findSimilar(String w, int index, int k)

该函数在TRIE结构中查找相似的单词,它们之间的K字母变化不同。

例如 - 在TRIE中,单词hello,nice,nine,cry,单词“bike”和k = 2,该函数将返回String[],其中包含nice和9。

我不是在找一个解决方案,只是为了一个返回字符串数组的方法。

**我写了一个带有我作为包装器收到的签名的函数,但我发现我不能使用包装器。

谢谢!

3 个答案:

答案 0 :(得分:1)

  

我不是在找一个解决方案,只是为了一个返回字符串数组的方法。

要返回包含文字string1string2的字符串数组,您只需使用return new String[] { "string1", "string2"};,例如String[] arr = new String[2]; arr[0] = "string1"; arr[1] = "string2"; return arr;

否则,如果您事先知道将返回多少元素,则可以创建String数组并为其位置指定值:

{{1}}

如果它是递归函数的返回类型,您可能需要使用递归调用的结果在当前调用中构建自己的结果。考虑到无法扩展数组,您需要创建一个具有预期大小的新数组,并将结果的值复制到其中,例如array initializer

答案 1 :(得分:1)

琐碎的例子:

public String[] findSimilar(String w, int index, int k) {
    return new String[] {"string1","string2"}
}

也许更有用:

public String[] findSimilar(String w, int index, int k) {
    List<String> similar = new ArrayList<>();
    // insert some implementation here

    return similar.toArray(new String[similar.size()]);
}

答案 2 :(得分:0)

使用类似的东西。 我不想提供完整的代码只是一个想法

public String[] findSimilar(String w, int index, int k) {
    String[] res1=findSimilar(conditions one);
    String[] res2=findSimilar(conditions two);

    String[] res=new String[res1.length+res2.length];
    //use public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    System.arraycopy(copyFrom, ..., copyTo, ..., ...);
}