所以我编写了一个代码,用于从txt文件中获取行并使用数据创建一个对象,并将该对象添加到数组列表中,但是当我尝试打印对象时会发生奇怪的事情。 这是主要的课程:
public class Main{
static ArrayList<profesor>profesors = new ArrayList<profesor>();
public static void main(String[]args) throws Exception{
readList();
for(int i=0;i<profesors.size(); i++){
String p = profesors.get(i).toString();
System.out.println(p);
}
fillTimetable();
displayTimetable();
}
private static void readList() throws Exception {
FileReader file = new FileReader("list.txt");
BufferedReader reader=new BufferedReader(file);
String line =reader.readLine();
String lineSplit[]= new String[27];
while(line != null){
lineSplit = line.split("\\s+");
profesors.add(new profesor(lineSplit[0], lineSplit[1], new String[]{ lineSplit[2], lineSplit[3], lineSplit[4], lineSplit[5], lineSplit[6], lineSplit[7],lineSplit[8], lineSplit[9], lineSplit[10], lineSplit[11], lineSplit[12], lineSplit[13], lineSplit[14], lineSplit[15], lineSplit[16], lineSplit[17], lineSplit[18], lineSplit[19], lineSplit[20], lineSplit[21], lineSplit[22], lineSplit[23], lineSplit[24], lineSplit[25], lineSplit[26]}));
line = reader.readLine();
}
}
private static void fillTimetable() {
// TODO Auto-generated method stub
}
private static void displayTimetable() {
// TODO Auto-generated method stub
}
}
这是profesor类:
import java.util.Arrays;
public class profesor {
private String name;
private String subject;
private String[] avalidehours=new String[25];
public profesor(String string, String string2, String[] strings) {
string = name;
string2 = subject;
strings = avalidehours;
}
public String toString(){
return name + subject + Arrays.toString(avalidehours);
}
}
txt:
Petittsdfi Mateasdfmatica mif mig vif vig ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Csdfales Apeasddsca luc lud mac mad mic mid juc jud ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Lucsdfdfero NavasdsdegacionI lub luc lud lue mab mac mad mae mib mic mid mie jub juc jud jue vib vic vid vie ññ ññ ññ ññ ññ
Bergamaschi TecPasdsdesc lua luf maa maf mia mif jua juf via vif ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Mazzssa MeteoasffrologiaI mab mac jub juc ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Puesdfdla ComunicaasdcionesI lua lub luc lud maa mab mac mad mia mib mic mid jua jub juc jud via vib bic bid ññ ññ ññ ññ ññ
Chifdsatti IngTasddecI mib mic mid mie jub juc jud jue ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Jimesdfdfnez Superviasdfvencia maa mab jua jub ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Rusbissno ManasddiobraI mab mac mad mae maf mib mic mid mie mif ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Veldfsasco MaquinasI vib vic vid vie vif ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Luscsro EquiposElectronicos lub luc lud lue mab mac mad mae mib mic mid mie jub juc jud jue vib vic vid vie ññ ññ ññ ññ ññ
Ateasdnas PrimerosAux vib vic vid vie ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Fustafer CargaasfEstiva lue luf lug mae maf mag mie mif mig jue juf jug vie vif vig ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
这就是我运行程序时得到的结果:
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
答案 0 :(得分:4)
public profesor(String string, String string2, String[] strings) {
this.name = string;
this.subject = string2;
this.avalidehours = strings;
}
应该是
_.range(coll.length / n).map(i => coll.slice(i * n, (i + 1) * n))
你真的应该考虑选择更好的变量naes,尊重Java命名约定,并使用循环而不是逐个枚举25个avalidehours元素。
此外,在阅读文件时使用try-with-resources语句,以确保在阅读完毕后阅读器已关闭。
答案 1 :(得分:0)
您撤消了profesor
构造函数中的分配:
string = name;
应该是
name = string;