0
私はC++のプログラマーで、Javaを学んでいますが、int型と文字列型の読み込み中にいくつかの問題がありました。 \ n、それはcin.ignoreとC++のようになりますが、そのためInteger.parseIntを使用することにしました。ファイルから文字列と整数を読み取る際にエラーが発生しました
これは私の本当の問題ではありませんが、私の本当の問題は後で、それが終わりの文字*を読み込んでも、それが終わることはありませんが、それはただ終了しません。
これは、ファイルの内容です:
CircumsTest
25
150754
UnitedPhase
UP
18852
John C
12345678A
Marcal B
23456789B
*
ComunismT
CT
6969
Laura D
22233300T
Alex M
22355567I
*
*
やコード、nomCandidatは私に候補者の名前を示しますし、場合に読み、それ以上が存在しない、それがされるだけで、文字列の名前です* 最後まで。
public static void llegirCircumscripcio(Circumscripcio c) throws FileNotFoundException
{
File file = new File("ProcesElectoral.txt");
Scanner sc = new Scanner(file);
String nomCircumscripcio = sc.nextLine();
int nEscons = Integer.parseInt(sc.nextLine());
int votsValids = Integer.parseInt(sc.nextLine());
String nomPartit, siglesPartit; int votsPartit;
String nomCandidat, dniCandidat;
c = new Circumscripcio(nomCircumscripcio,nEscons,votsValids);
nomPartit = sc.nextLine();
while(nomPartit != "*"){
siglesPartit = sc.nextLine();
votsPartit = Integer.parseInt(sc.nextLine());
Partit p = new Partit(siglesPartit,nomPartit,votsPartit);
nomCandidat = sc.nextLine();
while(nomCandidat != "*"){
System.out.println(nomCandidat);
dniCandidat = sc.nextLine();
p.afegirCandidat(new Candidat(nomCandidat,dniCandidat));
nomCandidat = sc.nextLine();
}
System.out.println("arribo");
p.mostrarPartit();
c.afegirPartit(p);
nomPartit = sc.nextLine();
}
sc.close();
}
public static void main(String[] args) throws FileNotFoundException {
Circumscripcio c = new Circumscripcio();
llegirCircumscripcio(c);
c.mostrarCircumscripcio();
// TODO code application logic here
}
ありがとうございました。
while(nomPartit!= "*")の代わりにwhile(! "*"。equals(nomPartit))を使用してください。 ==演算子は内容ではなく参照を比較する – SebVb
@SebVbええ、それはそれでも動作しますが、まだ終了しません。 – magalenyo
try while(!nomPartit.equals( "*")) – xxlali