从文件读取字符串和整数时出错 p>我是C++程序员,我在学习java,在读int和字符串时遇到了几个问题,因为在java中int不忽略\n,就像C++中的CIN.BILD,但是这就是为什么我决定使用整型。p>
虽然,这不是我真正的问题,但我真正的问题是,在第二个while循环中,它永远不会结束,即使它读取结束字符*,它也不会结束 这是文件内容:从文件读取字符串和整数时出错 p>我是C++程序员,我在学习java,在读int和字符串时遇到了几个问题,因为在java中int不忽略\n,就像C++中的CIN.BILD,但是这就是为什么我决定使用整型。p>,java,file,Java,File,虽然,这不是我真正的问题,但我真正的问题是,在第二个while循环中,它永远不会结束,即使它读取结束字符*,它也不会结束 这是文件内容: CircumsTest 25 150754 UnitedPhase UP 18852 John C 12345678A Marcal B 23456789B * ComunismT CT 6969 Laura D 22233300T Alex M 22355567I * * 代码NomCandidate只是一个字符串名,它将指示我候选人的名字,如果没有更多的
CircumsTest
25
150754
UnitedPhase
UP
18852
John C
12345678A
Marcal B
23456789B
*
ComunismT
CT
6969
Laura D
22233300T
Alex M
22355567I
*
*
代码NomCandidate只是一个字符串名,它将指示我候选人的名字,如果没有更多的内容可读,那么结尾将是*号
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
}
谢谢您的帮助。我的问题之一是我正在使用!=要比较字符串,感谢SebVb的响应,以及我拥有的一个更大文件上的,它不会因为自身的错误而结束。谢谢。使用while(!“”.equals(nomPartit))代替while(nomPartit!=“”)。==运算符比较引用,而不是content@SebVb是的,即使它还没有结束,它也可以工作。请尝试while(!nomPartit.equals(“*”)