-1

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

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

3 回答 3

6

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

很可能您没有得到结果,因为您忽略了返回的值。如果您不想丢弃返回的值,您可以这样做。

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

如果你只是

leerArchivo(array);

它将丢弃返回的值。

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

于 2013-08-06T18:28:01.910 回答
1

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

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

public String[][] leerArchivo(){

和改变

k.leerArchivo(array);

array=k.leerArchivo();
于 2013-08-06T18:32:04.910 回答
0

您没有使用返回的值。您正在更新一个不同的数组,而不是发送到该leerArchivo方法的数组。在不更改大部分代码的情况下,您可以尝试以下方法:

String[][]array = new String[5][3];
k.abrirLog();
String[][] retArray = k.leerArchivo(array);
System.out.println(retArray[0][1]);
于 2013-08-06T18:30:11.967 回答