2

次の行が空白になったときにファイル スキャナがスキャンを停止するようにしようとしています。

public static void createAudioTypes(File list, Scanner mediaReader, String mediaType) {
    if (mediaType.equalsIgnoreCase("CD") || mediaType.equalsIgnoreCase("CASSETTE")) {
        String title = mediaReader.next();
        String artist = mediaReader.next();
        int year = 0;
        if (mediaReader.hasNextInt()) {
            year = mediaReader.nextInt();
        }
        String lbl = mediaReader.next();
        ArrayList<String> songs = new ArrayList<String>();
        System.out.println(title);
        System.out.println(artist);
        System.out.println(year);
        System.out.println(lbl);
        mediaReader.useDelimiter(",");
        while(mediaReader.nextLine().equalsIgnoreCase(mediaType)) {
            songs.add(mediaReader.next());
        }
        System.out.println(songs);
    }

}

私が読んでいるテキストファイルの一部:

CD
Immersion
Pendulum
2011
Atlantic
Genesis, Salt in the Wounds, Watercolour, Set Me on Fire, Crush, Under the Waves, Immunize (feat. Liam Howlett), The Island - pt. 1 - Dawn, The Island - pt. 2 - Dusk, Comprachicos, The Vulture, Witchcraft, Self vs Self (feat. In Flames), The Fountain (feat Steven Wilson), Encoder
16.99

CD
Demon Days
Gorillaz

すべてのトラック タイトルの行がワード ラップされていないことに注意してください。この行は配列リストに読み込まれます。トラック タイトルの行のすぐ下に、価格と空白行があることに注意してください。この空白行をスキャナーの停止点にしたいのですが、構文がわかりません。

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

4

1 に答える 1

1

で行全体を読み取りreadLine()trim()そのかどうかを確認しますisEmpty()

于 2013-01-19T05:53:21.417 に答える