0

我想按照[return] methodName(int numberOfTimes, String[numberOfTimes] strings)_numberOfChoicesString

我想知道,正如我写的那样,它不会工作,因为它会在编译时失败,因为numberOfChoices没有定义,而且,如果它可以编译,那么解决它仍然很棘手。

我认为我最好的选择是使用String... strings并执行这样的 for 循环:

void methodName(int numberOfTimes, String... strings) {
    for(int i = 0, i < numberOfTimes; i++) {
        // do something with strings[i]
    }
}

但我仍然想知道我最初想要的是否可能。

编辑:我很笨,一直在考虑在工作空间之外“分享”我的方法,这就是为什么我希望它以最通用的方式工作。解决方案实际上numberOfChoicesStringmethodName. 类似的东西methodname("One", "Two")。所以,固定代码将是......

void methodName(String... choices) {
    for(int i = 0; i < choices.length; i++) {
        // do something with choices[i]
    }
}
4

4 回答 4

0

在 java 中,数组是动态的,所以它们不需要在方法参数中指定索引

[return] methodname(int numberOfTimes, String[] strings) 有效

于 2013-03-06T22:13:16.637 回答
0

stringsJava 将变量参数视为数组,因此您可以像往常一样迭代。

示例(返回所有用空格连接的字符串):

public void wordsToSentence(String... words) {
    final StringBuilder builder = new StringBuilder();
    boolean notFirst = false;
    for (String s : words) {
        if (notFirst) builder.append(" ");
        else notFirst = true;
        builder.append(s);
    }
    return builder.toString();
}
于 2013-03-06T22:15:50.643 回答
0

如果变量参数始终是同一类型(如字符串),您可以使用数组或列表作为参数,该方法不会关心数组的大小,只是它是一个数组

void methodName(int numberOfTimes, String[] myStrings)
于 2013-03-06T22:09:26.317 回答
0

最后一个参数类型后面的三个句点表示最后一个参数可以作为数组或字符串参数序列传递。然后,您可以在不知道数字的情况下使用循环,例如:

for (String stringParam: args) {
   // your logic on stringParam
}
于 2013-03-06T22:11:27.233 回答