Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件读取字符串和整数时出错 p>我是C++程序员,我在学习java,在读int和字符串时遇到了几个问题,因为在java中int不忽略\n,就像C++中的CIN.BILD,但是这就是为什么我决定使用整型。p>_Java_File - Fatal编程技术网

从文件读取字符串和整数时出错 p>我是C++程序员,我在学习java,在读int和字符串时遇到了几个问题,因为在java中int不忽略\n,就像C++中的CIN.BILD,但是这就是为什么我决定使用整型。p>

从文件读取字符串和整数时出错 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只是一个字符串名,它将指示我候选人的名字,如果没有更多的

虽然,这不是我真正的问题,但我真正的问题是,在第二个while循环中,它永远不会结束,即使它读取结束字符*,它也不会结束

这是文件内容:

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(“*”)