在Java中,如何将多个变量返回到一个方法中?
我有一个类的以下代码,用于读取一个文件(.txt,其中包含3行,每行180个数字),它运行良好。问题是,正如您可能看到的,我只是返回数组“data1”,我想在同一个方法中返回3个数组(data1、data2、data3)和3个整数(total1、total2、total3)。你知道我该怎么做吗?。非常感谢你在Java中,如何将多个变量返回到一个方法中?,java,object,methods,return,Java,Object,Methods,Return,我有一个类的以下代码,用于读取一个文件(.txt,其中包含3行,每行180个数字),它运行良好。问题是,正如您可能看到的,我只是返回数组“data1”,我想在同一个方法中返回3个数组(data1、data2、data3)和3个整数(total1、total2、total3)。你知道我该怎么做吗?。非常感谢你 public int[]OpenFile()引发IOException { FileReader=新的FileReader(路径); BufferedReader textReader=新的
public int[]OpenFile()引发IOException
{
FileReader=新的FileReader(路径);
BufferedReader textReader=新的BufferedReader(读卡器);
int numberOfTimeZones=3;
int[]data1=新int[180];
int[]data2=新的int[180];
int[]data3=新int[180];
整数total1=0;
整数2=0;
int total3=0;
for(int i=0;i
}您还可以返回一个对象。因此,出于这个目的,为什么不简单地创建一个包含请求字段的类——数组和整数
如果不想使用这种简单的方法,可以使用元组 如果您需要从一个方法返回多个值,您有以下选择:数组、基本体集合、对象、对象集合。
public int [] OpenFile() throws IOException
{
FileReader reader = new FileReader(path);
BufferedReader textReader = new BufferedReader(reader);
int numberOfTimeZones = 3;
int[] data1 = new int[180];
int[] data2 = new int[180];
int[] data3 = new int[180];
int total1 = 0;
int total2 = 0;
int total3 = 0;
for (int i = 0; i < numberOfTimeZones; i++){
if (i == 0)
{
String firstTimeZone = textReader.readLine();
String[] val = firstTimeZone.split ("\\s+");
for (int u = 0; u < val.length; u++)
{
int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u]))));
total1 += stats;
total1= total1/180;
data1[u] = stats;
}
}
else
if (i == 1)
{
String secondTimeZone = textReader.readLine();
String[] val = secondTimeZone.split ("\\s+");
for (int u = 0; u < val.length; u++)
{
int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u]))));
total2 += stats;
total2= total2/180;
data2[u] = stats;
}
}
else
{
String thirdTimeZone = textReader.readLine();
String[] val = thirdTimeZone.split ("\\s+");
for (int u = 0; u < val.length; u++)
{
int stats = (int)(Math.ceil(Math.abs(Double.parseDouble(val[u]))));
total3 += stats;
total3= total3/180;
data3[u] = stats;
}
}
}
textReader.close();
return data1;
}