出于某种原因,在v = new Versenyzok();
行中显示“与...环绕”,我以为我需要Versenyzok
的一种方法,我做到了,但问题仍然存在。
另一个问题在v = new Versenyzok(adatok[0],adatok[1],adatok[2],adatok[3]);
行中。不兼容的类型:字符串不能转换为日期。但是我找不到想要将字符串格式化为日期格式的来源。
package vizsgamintaa;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class VizsgaMintaA {
static SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");
static Scanner sc= new Scanner(System.in);
public static void main(String[] args) throws ParseException, FileNotFoundException {
ArrayList<Versenyzok> versenyzok = new ArrayList<>();
Feltolt(versenyzok);
}
private static void Feltolt(ArrayList<Versenyzok> versenyzok) throws ParseException{
Versenyzok v;
File f = new File("versenyzok.txt");
try {
Scanner scan = new Scanner(f, "iso-8859-2");
while (scan.hasNextLine()) {
String sor = scan.nextLine();
String[] adatok = sor.split(";");
if (adatok.length == 4) {
v = new Versenyzok();
v.nev = adatok[0];
v.szuletes = df.parse(adatok[1]);
v.csapat = adatok[2];
if (adatok[3].length()<1) {
v.vbcim = 0;
} else {
v.vbcim = Integer.parseInt(adatok[3]);
}
} else {
v = new Versenyzok(adatok[0],adatok[1],adatok[2],adatok[3]);
}
versenyzok.add(v);
}
} catch (FileNotFoundException ex) {
System.out.println("Nincs meg a fájl.");
}
}
class Versenyzok {
String nev,csapat;
Date szuletes;
int vbcim;
SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd");
@Override
public String toString(){
return "Versenyzo:" +nev + "Született:" + df.format(szuletes)+"Csapata:"+ csapat + "Vb címek:" + vbcim;
}
public Versenyzok(String nev, Date szuletes, String csapat, int vbcim) {
this.nev = nev;
this.szuletes = szuletes;
this.csapat = csapat;
this.vbcim = vbcim;
}
public Versenyzok(){}
}
}
答案 0 :(得分:0)
在public Versenyzok(String nev, Date szuletes, String csapat, int vbcim) {
中,您将参数2作为日期。但是在else
循环中,您将adatok[1]
放入了参数2,在这里它仍然是string
,因此您需要首先对其进行解析。
答案 1 :(得分:0)
我忘了打字
v = new Versenyzo (adatok[0],df.parse(adatok[1]),adatok[2],Integer.parseInt(adatok[3]));
df.parse
和Integer.parseInt