Pasar una matriz de cadenas como parámetro a una función java

Me gustaría pasar una matriz de cadenas como parámetro a una función. Por favor, mire el código de abajo

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

functionFoo(stringArray);

En lugar de:

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

pero si hago esto, aparece un error que indica que convertir String[] dentro String. Me gustaría saber si es posible pasar los valores así o cuál es la forma correcta de hacerlo.

preguntado el 28 de julio de 12 a las 05:07

En cuanto a la terminología, Java no tiene funciones pero métodos. La forma en que debe pensar es que una función es una pieza separada de funcionalidad (por ejemplo c = a + b) mientras que el método es un contexto envolvente para una o más funciones que realiza en datos dados (para continuar con el ejemplo, int sum(a,b)). -

"Me gustaría pasar una matriz de cadenas como parámetro a un método" Luego use "String[]" como el tipo de ese parámetro. -

8 Respuestas

Qué tal si:

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);
    }
}

Respondido 28 Jul 12, 05:07

Creo que esta debería ser la forma en que esto se hace...

    public static void function(String [] array){
    ...
    }

Y la llamada se hará como...

    public void test(){
        String[] stringArray = {"a","b","c","d","e","f","g","h","t","k","k","k","l","k"};
        function(stringArray);
    }

Respondido 25 Abr '21, 01:04

Todas las respuestas anteriores son correctas. Pero solo tenga en cuenta que pasará la referencia a la matriz de cadenas cuando pase así. Si realiza alguna modificación en la matriz en su función llamada, también se reflejará en la función de llamada.

Hay otro concepto llamado argumentos variables en Java que puede analizar. Básicamente funciona así. P.ej:-

 String concat (String ... strings)
   {
      StringBuilder sb = new StringBuilder ();
      for (int i = 0; i < strings.length; i++)
           sb.append (strings [i]);
      return sb.toString ();
   }

Aquí podemos llamar a la función como concat(a,b,c,d) o cualquier número de parámetros que desee.

Más información: http://today.java.net/pub/a/today/2004/04/19/varargs.html

Respondido 28 Jul 12, 08:07

¿qué i&lt decir o hacer? Quieres decir i<strings.length? - Thufir

mire el método principal familiar que toma la matriz de cadenas como parámetro

Respondido 28 Jul 12, 06:07

Lo más probable es que la declaración de su método sea incorrecta. Asegúrese de que el parámetro de métodos sea del tipo Matriz de cadenas (Cadena[]) y no simplemente Cadena y que use comillas dobles alrededor de sus cadenas en la declaración de la matriz.

private String[] stringArray = {"a","b","c","d","e","f","g","h","t","k","k","k"};
public void myMethod(String[] myArray) {}

Respondido 28 Jul 12, 05:07

Siéntete libre de usar esto como quieras.

/*
 * 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()

Básicamente lo usaría así:

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.

respondido 01 nov., 13:22

Creo que olvidaste registrar el parámetro como String[]

Respondido 04 Jul 16, 10:07

por favor revise el siguiente código para más detalles


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));
        
           }
        }

simplemente cópielo y páselo... su código... funcionará... y luego comprenderá cómo pasar una matriz de cadenas como parámetro...

Gracias por reservar tu viaje en bici con Cycling Mountains!

Respondido el 25 de junio de 20 a las 00:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.