StringToDate和非静态变量

时间:2018-12-14 19:51:05

标签: java string

出于某种原因,在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(){}
   }
}

2 个答案:

答案 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.parseInteger.parseInt