-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 に答える