我想将字符串数组作为参数传递给函数。请看下面的代码
String[] stringArray = {'a', 'b', 'c', 'd', 'e'};
functionFoo(stringArray);
而不是:
functionFoo('a', 'b', 'c', 'd', 'e');
但如果我这样做,则会收到错误消息,指出将String[]
转换为String
。我想知道是否可以传递这样的值或者正确的方法。
答案 0 :(得分:21)
怎么样:
public class test {
public static void someFunction(String[] strArray) {
// do something
}
public static void main(String[] args) {
String[] strArray = new String[]{"Foo","Bar","Baz"};
someFunction(strArray);
}
}
答案 1 :(得分:6)
以上所有答案都是正确的。但请注意,当您像这样传递时,您将传递对字符串数组的引用。如果对被调用函数中的数组进行任何修改,它也会反映在调用函数中。
在Java中还有另一个称为变量参数的概念,您可以查看。它基本上是这样的。例如: -
String concat (String ... strings)
{
StringBuilder sb = new StringBuilder ();
for (int i = 0; i < strings.length; i++)
sb.append (strings [i]);
return sb.toString ();
}
在这里,我们可以像concat(a,b,c,d)或任意数量的参数一样调用函数。
更多信息:http://today.java.net/pub/a/today/2004/04/19/varargs.html
答案 2 :(得分:1)
我相信这应该是这样做的方式......
public void function(String [] array){
....
}
呼叫将像......一样完成。
public void test(){
String[] stringArray = {"a","b","c","d","e","f","g","h","t","k","k","k","l","k"};
function(stringArray);
}
答案 3 :(得分:1)
看一下熟悉的main方法,它将字符串数组作为参数
答案 4 :(得分:0)
您的方法声明很可能不正确。确保methods参数的类型为String array(String []),而不仅仅是String,并且在数组声明中使用双引号括起来。
private String[] stringArray = {"a","b","c","d","e","f","g","h","t","k","k","k"};
public void myMethod(String[] myArray) {}
答案 5 :(得分:0)
我想您忘记将参数注册为String[]
答案 6 :(得分:0)
随意使用这个你喜欢的。
/*
* The extendStrArray() method will takes a number "n" and
* a String Array "strArray" and will return a new array
* containing 'n' new positions. This new returned array
* can then be assigned to a new array, or the existing
* one to "extend" it, it contain the old value in the
* new array with the addition n empty positions.
*/
private String[] extendStrArray(int n, String[] strArray){
String[] old_str_array = strArray;
String[] new_str_array = new String[(old_str_array.length + n)];
for(int i = 0; i < old_str_array.length; i++ ){
new_str_array[i] = old_str_array[i];
}//end for loop
return new_str_array;
}//end extendStrArray()
基本上我会像这样使用它:
String[] students = {"Tom", "Jeff", "Ashley", "Mary"};
// 4 new students enter the class so we need to extend the string array
students = extendStrArray(4, students); //this will effectively add 4 new empty positions to the "students" array.
答案 7 :(得分:0)
请检查以下代码以获取更多详细信息
package FirstTestNgPackage;
import java.util.ArrayList;
import java.util.Arrays;
public class testingclass {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.out.println("Hello");
int size = 7;
String myArray[] = new String[size];
System.out.println("Enter elements of the array (Strings) :: ");
for(int i=0; i<size; i++)
{
myArray[i] = "testing"+i;
}
System.out.println(Arrays.toString(myArray));
ArrayList<String> myList = new ArrayList<String>(Arrays.asList(myArray));
System.out.println("Enter the element that is to be added:");
myArray = myList.toArray(myArray);
someFunction(myArray);
}
public static void someFunction(String[] strArray)
{
System.out.println("in function");
System.out.println("in function length"+strArray.length );
System.out.println(Arrays.toString(strArray));
}
}
只需将其复制并通过...您的代码即可。.然后,您将了解如何将字符串数组作为参数传递...
谢谢