12

文字列配列をパラメーターとして関数に渡したいと思います。以下のコードを見てください

String[] stringArray = {'a', 'b', 'c', 'd', 'e'};

functionFoo(stringArray);

それ以外の:

functionFoo('a', 'b', 'c', 'd', 'e');

しかし、これを行うと、に変換するというエラーが表示String[]されStringます。そのような値を渡すことが可能かどうか、またはそれを行う正しい方法は何かを知りたいです。

4

8 に答える 8

27

どうですか:

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);
    }
}
于 2012-07-28T04:29:40.697 に答える
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

于 2012-07-28T07:40:22.663 に答える
3

私はこれがこれが行われる方法であるべきだと信じています...

    public static 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);
    }
于 2012-07-28T04:31:06.303 に答える
1

文字列配列をパラメータとして受け取るおなじみのmainメソッドを見てください

于 2012-07-28T05:52:31.207 に答える
0

メソッド宣言が間違っている可能性が高いです。メソッドのパラメーターが単なる String ではなく String 配列 (String[]) 型であること、および配列宣言で文字列を二重引用符で囲んでいることを確認してください。

private String[] stringArray = {"a","b","c","d","e","f","g","h","t","k","k","k"};
public void myMethod(String[] myArray) {}
于 2012-07-28T04:30:16.380 に答える
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));
        
           }
        }

それをコピーして貼り付けるだけです...コード..動作します..そして、文字列配列をパラメーターとして渡す方法を理解します...

ありがとうございました

于 2020-06-24T23:51:45.747 に答える
0

パラメータを次のように登録するのを忘れていると思います String[]

于 2012-07-28T07:00:59.380 に答える