2016-12-23 6 views
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 
} 

ありがとうございました。

+2

while(nomPartit!= "*")の代わりにwhile(! "*"。equals(nomPartit))を使用してください。 ==演算子は内容ではなく参照を比較する – SebVb

+0

@SebVbええ、それはそれでも動作しますが、まだ終了しません。 – magalenyo

+0

try while(!nomPartit.equals( "*")) – xxlali

答えて

0

私の問題の1つは、文字列を比較するために、=そのSebVbの応答と私が持っている大きなファイルで、エラーのために終了しないということでした。ありがとう。

関連する問題