ArrayListを受け取るリーダークラスを作成し、.txtの読み取りを開始して、各行をcarreerの新しい要素に保存しますリーダはテキストを含む新しい行を見つけ、ArrayListに新しい要素を追加します)。これは、ArrayListのコンテンツを印刷すると、読者は内容を保存しますが、末尾に0false
が含まれているためです。 これは私が私のメインクラスに何をしたかである:リーダークラスがtxtを誤読する(各文字列の終わりに0false)
ArrayList<Carrera> clista = new ArrayList<Carrera>();
CarreraReader lectorCarrera = new CarreraReader();
lectorCarrera.leer(clista);
そして、これが私のリーダークラスのメソッドです:
public void leer(ArrayList<Carrera> clista) throws FileNotFoundException {
Scanner s = new Scanner(new File("thetext.txt"));
while(s.hasNextLine())
{
Carrera cq = new Carrera();
cq.setNombre(s.nextLine());
clista.add(cq);
}
だから、大学のキャリアを示す文字列の多くを保存しますが、この中に方法: 例:
Engineering0false
Art0false
Law0false
Agronomy0false
どのように私はすべての文字列の末尾に0false
を保存するから読者を防ぐことができますか?私が間違ったことは何ですか?私は同じクラスのプロジェクトでこの同じリーダーを試してみましたが、それは完璧に働きました。最後に0false
の文字列はありませんでした。
これは私のカレラクラスの実装です:
ここpackage paquete;
public class Carrera {
private String nombre;
private int duracion;
private String codigo;
private boolean acreditado;
public Carrera() {
nombre="";
duracion=0;
codigo="";
acreditado=false;
}
public Carrera(String nombre, int duracion, String codigo, boolean acreditado) {
this.nombre=nombre;
this.duracion=duracion;
this.codigo=codigo;
this.acreditado=acreditado;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getDuracion() {
return duracion;
}
public void setDuracion(int duracion) {
this.duracion = duracion;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public boolean isAcreditado() {
return acreditado;
}
public void setAcreditado(boolean acreditado) {
this.acreditado = acreditado;
}
public String toString()
{
return nombre;
}
}
は私が内容を印刷する方法である:
int i;
for(i=0;i<clista.size();i++){
System.out.println(clista.get(i));
}
投稿 'Carrera.setNombre(String)'してください。そして、あなたが保存された 'String'(s)をどのように決定しているのですか? –
'public void setNombre(String nombre){ this.nombre = nombre; } ' –
この行が' cq.setNombre(s.nextLine()); 'を実行した後に' cq'に何が起きているのかをデバッガを使って確認してください。それがまさにそれでなければならない場合、問題はおそらくあなたの印刷コードにあるでしょう。 –