0

こんにちは、テキスト ファイルの読み取りに問題があります。

Java に huizen.txt というファイルをロードします。これは次のとおりです。 )

3
Emmalaan 23
3051JC Rotterdam
7 kamers
prijs 300000
Javastraat 88
4078KB Eindhoven
3 kamers
prijs 50000
Javastraat 93
4078KB Eindhoven
4 kamers
prijs 55000

3 はアパートの数であるため、アパートの read-method を介して 3 回のループを (最終的には......) 言いたいと思います。しかし、試してみると: int NumberOfAppartmentsInList = scanner.nextInt();、これは機能しません! 文字列行の配列リストを作成するscanner.hasNextInt()ときに試しても、でもfalse になります。NumberOfAppartmentsInList = Integer.parseInt(list.get(0))

誰でも私を助けることができますか?

事前にTnx!

Grtz (以下のコード)

public static Portefeuille read(String infile) throws Exception
{

    Portefeuille protonX = new Portefeuille();
    ArrayList<String> huizen = new ArrayList<String>();
    Scanner sc = new Scanner("huizen.txt");

    while (sc.hasNext())
    {
    huizen.add(sc.nextLine());
    }

    String infil3 = huizen.toString();
    Scanner scan = new Scanner(infil3);

    if (scan.hasNextInt())
    {
    int aantal = scan.nextInt();
    System.out.println(aantal);
    }
    else{
        System.out.println("ERROR");
    }

    ArrayList<Woning> list = new ArrayList<Woning>();
    for (int i = 0; i < 4; i++)
    {
        list.add(Woning.read(scan));
    }

    scan.close();
    sc.close();
    return protonX;
}
4

1 に答える 1

0

正しい順序でデータを読み取っていなかったと思います。さらに、huizen.toString() では、すべての文字列の合計は得られません。

したがって、それを修正する1つの方法は次のようになります。

public static Portefeuille read(String infile) throws Exception {

Portefeuille protonX = new Portefeuille();
ArrayList<String> huizen = new ArrayList<String>();
Scanner sc = new Scanner("huizen.txt");

while (sc.hasNext())
{
huizen.add(sc.nextLine());
}

String infil3   = "";

for (String h : huizen)
{
    infil3 += h + "\n";
}

Scanner scan = new Scanner(infil3);

if (scan.hasNextInt())
{
int aantal = scan.nextInt();
System.out.println(aantal);
}
else{
    System.out.println("ERROR");
}

ArrayList<Woning> list = new ArrayList<Woning>();
for (int i = 0; i < aantal; i++)
{
    list.add(Woning.read(scan));
}

scan.close();
sc.close();
return protonX;

}

于 2013-10-23T02:46:44.647 に答える