我有这段代码来读取此类文件的每一行“603,The Matrix,1999-03-30,63000000,136,7.9,9079” 但我只需要读取前3个参数,第3个参数分别是需要单独读取的日期,因此需要将年份放入var中,将月份放入其他var中,然后将该日期放入另一个var但输出中我得到的是:“[603 | The Matrix | 03-603,The Matrix,1999-1999-03-30”
int i;
Scanner leitorFicheiroFilmes = new Scanner(ficheiroFilmes);
ArrayList<Filmes> filme = new ArrayList<>();
for (i = 0; leitorFicheiroFilmes.hasNextLine(); i++) {
String line = leitorFicheiroFilmes.nextLine();
String dados[] = linha.split(",");
if (dados.length == 7) {
int idFilme = Integer.parseInt(dados[0]);
String titulo = dados[1];
String dadosNew[] = line.split("-");
String ano = dados[2];
String mes = dadosNew[0];
String dia = dadosNew[1];
filme.add(new Filmes(idFilme, title, year, month, day, parseActoresFile(), parseGenerosFile(idFilme)));
}
}
这是带有构造函数的类:
public class Filmes {
int idFilme;
String titulo;
ArrayList<Actores> actores = new ArrayList<Actores>();
ArrayList<GenerosCinematograficos> generos = new ArrayList<GenerosCinematograficos>();
String year, month, day;
public Filmes(int idFilme, String titulo, String year, String month, String day, ArrayList<Actores> actores, ArrayList<GenerosCinematograficos> generos) {
this.idFilme = idFilme;
this.titulo = titulo;
this.year = year;
this.month = month;
this.day = day;
this.actores = actores;
this.generos = generos;
}
public String toString() {
return idFilme + " | " + titulo + " | " + dia + "-" + mes + "-" + ano;
}
}
答案 0 :(得分:1)
String dadosNew[] = line.split("-");
必须是
String dadosNew[] = dados[2].split("-");
dadosNew
数组将为[1999,03,30]
,您可以通过访问正确的索引来获取日期,月份和年份。
答案 1 :(得分:0)
解析日期时,您正在为变量读取不正确的值
String dadosNew[] = line.split("-");
String ano = dados[2];
String mes = dadosNew[0];
String dia = dadosNew[1];
到
String dadosNew[] = dados[2].split("-");
String ano = dadosNew[0];
String mes = dadosNew[1];
String dia = dadosNew[2];
答案 2 :(得分:0)
问题在于:
String dadosNew[] = line.split("-");
输入(line
)为"603,The Matrix,1999-03-30,63000000,136,7.9,9079"
结果将为:
{"603,The Matrix,1999", "03", "30,63000000,136,7.9,9079"}
您想要仅拆分日期,这包含在dados[2]
中,因此要纠正它,您必须这样做:
String dadosNew[] = dados[2].split("-");