Java的。方法不会返回数组

时间:2013-08-06 18:26:24

标签: java

我正在尝试从方法返回一个数组;它不起作用。 我从文本文件中获取数组的信息。 数组在方法期间成功获取信息,但不会将其返回到main。

import javax.swing.JFrame;

public class TerminalVenta {

    public static void main (String[] args){
        Log k = new Log();
        String[][]array = new String[5][3];
        k.abrirLog();
        k.leerArchivo(array);
        System.out.println(array[0][1]);
        k.closeFile();
    }
}


import java.io.*;
import java.util.*;

public class Log {
    private Scanner x;
    String arreglo[][] = new String [5][3];

    public void abrirLog() {
        try {
            x = new Scanner(new File ("Log.txt"));
        }
        catch(Exception e) {
            System.out.println("No se pudo abrir el archivo");
        }
    }

    public String[][] leerArchivo(String array[][]) {
        String a = x.next();
        String b = x.next();
        String c = x.next();
        String d = x.next();
        String e = x.next();
        String f = x.next();
        String g = x.next();
        String h = x.next();
        String i = x.next();
        String j = x.next();
        String k = x.next();
        String l = x.next();
        String m = x.next();
        String n = x.next();
        String o = x.next();

        arreglo[0][0] = a;
        arreglo[0][1] = b;
        arreglo[0][2] = c;
        arreglo[1][0] = d;
        arreglo[1][1] = e;
        arreglo[1][2] = f;
        arreglo[2][0] = g;
        arreglo[2][1] = h;
        arreglo[2][2] = i;
        arreglo[3][0] = j;
        arreglo[3][1] = k;
        arreglo[3][2] = l;
        arreglo[4][0] = m;
        arreglo[4][1] = n;
        arreglo[4][2] = o;

        System.out.println(arreglo[0][0]);
        System.out.println(arreglo[0][1]);
        return arreglo;
    }

    public void closeFile() {
        x.close();
    }
}

3 个答案:

答案 0 :(得分:6)

  

我正在尝试从方法返回一个数组,但是无法正常工作,

您很可能没有得到结果,因为您忽略了返回的值。如果您不想丢弃返回的值,可以执行此操作。

String[][]result = leerArchivo(array);

如果你这样做

leerArchivo(array);

它将丢弃返回的值。

注意:您也忽略了传入的array。您可以删除它,因为它没有被使用。

答案 1 :(得分:1)

您正在leerArchivo中返回数组,但您没有捕获它。事实上,你在这个函数中要求一个数组,但也没有做任何事情。你应该改变

public String[][] leerArchivo(String array[][]){

public String[][] leerArchivo(){

并更改

k.leerArchivo(array);

array=k.leerArchivo();

答案 2 :(得分:0)

您没有使用返回的值。您正在更新另一个数组,而不是发送到leerArchivo方法的数组。在不改变代码的情况下,您可以尝试这样做:

String[][]array = new String[5][3];
k.abrirLog();
String[][] retArray = k.leerArchivo(array);
System.out.println(retArray[0][1]);