【发布时间】:2018-03-29 12:18:52
【问题描述】:
我是 Java 新手。我有一个数组,其中包含 int 类型的运动 ID。这些 ID 包含运动名称和卡路里,如果您进行 1 小时的运动会燃烧。我想通过这个数组的元素添加这些属性(名称和卡路里)。我还在阅读一个包含运动 ID、名称和卡路里信息的文件。我将它们拆分为\t。它正在分裂,但问题是,我的实现没有分配属性。我需要在Sports class 而不是Main class 上执行此操作。而且我必须在其他类中访问这个数组及其属性。如果我在打电话给array[2].name 时举个例子,这一定会给我Basketball 这样的例子。或者,array[2].calorie 必须给我200。我已经尝试过 for 循环并将它们分配为:
for ( int i = 0; i < array.length; i++ ) {
array[i].name = nameOfSport;
array[i].calorie = calorieOfSport;
}
import java.io.*;
import java.util.*;
public class Sport {
private int sportID;
private String sportName;
private int sportCalorie;
public int[] sportArray = new int[0];
public void readFileSport() {
File file = new File("src/sport.txt");
try {
BufferedReader br = new BufferedReader(new FileReader(file));
int i = 0;
String str;
try {
while ((str = br.readLine()) != null) {
int j = 0;
for ( String retval: str.split("\t")) {
if ( j == 0 ) {
System.out.println(retval);
sportArray = addElementArray(sportArray, Integer.parseInt(retval));
System.out.println(sportArray[i]);
j++;
} else {
if (j == 1) {
// System.out.println(retval);
setSportName(sportArray, retval, i);
System.out.println(sportArray[i].sportName);
j++;
} else if (j == 2) {
//System.out.println(retval);
setSportCalorie(Integer.parseInt(retval));
j++;
}
}
}
i++;
}
} catch (FileNotFoundException e) {
System.out.println("Sport File could not find");
}
} catch (IOException e) {
System.out.println("Sport file could not read!");
}
}
public void assignFields () {
}
public void setSportID (int sportID) {
this.sportID = sportID;
}
public void setSportName (int[] array, String name, int e) {
array[e].sportName = name;
}
public void setSportCalorie (int sportCalorie) {
this.sportCalorie = sportCalorie;
}
public void print() {
int k = 0;
while ( k < sportArray.length ) {
System.out.println(sportID);
k++;
}
}
public static int[] addElementArray(int[] array, int newInt) {
int[] newArray = new int[array.length + 1];
for ( int i = 0 ; i < array.length ; i++ ) {
newArray[i] = array[i];
}
newArray[newArray.length - 1] = newInt;
return newArray;
}
public int[] getSportArray() {
return sportArray;
}
}
【问题讨论】:
-
目前/预期的行为是什么?
-
您应该添加
array的确切类型,并添加相应的类以便我们能够提供帮助 -
您缺少解析文件的代码部分和初始化数组的部分。
-
@Mena 解析文件的部分无关,只是硬编码解析的文件。 (minimal reproducible example)
-
@OHGODSPIDERS 我已编辑