我正在尝试从方法返回一个数组;它不起作用。 我从文本文件中获取数组的信息。 数组在方法期间成功获取信息,但不会将其返回到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();
}
}
答案 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]);