所以我是C ++程序员并且我正在学习Java,在读取int和字符串时我遇到了一些问题,因为在Java中的int之后它并没有忽略\ n \ n就像在c ++中使用cin.ignore一样,但是,这就是为什么我决定使用Integer.parseInt ...
虽然,这不是我真正的问题,但我的真正问题是在第二个while循环中,它永远不会结束,即使它读取结束字符*,它也只是不会结束。
这是文件内容:
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
}
感谢您的帮助。
答案 0 :(得分:0)
我的一个问题是我正在使用!=比较字符串,感谢SebVb的响应,以及我所拥有的更大的文件,它不会因为自身的错误而结束。感谢。