import java.util.*;
import java.io.*;
import java.*;
public class b {
static void lireBddParcs(String nomFichier) throws IOException
{
LinkedHashMap parcMap = new LinkedHashMap<Parc,Collection<Manege>>();
boolean existeFichier = true;
FileReader fr = null;
try
{
fr = new FileReader (nomFichier);
}
catch(java.io.FileNotFoundException erreur)
{
System.out.println("Probleme rencontree a l'ouverture du fichier" + nomFichier);
existeFichier = false;
}
if (existeFichier)
{
Scanner scan = new Scanner(nomFichier).useDelimiter("\t");
while (scan.hasNextLine())
{
String nom = scan.next();
String ville = scan.next();
String etat = scan.next();
Parc p = new Parc(nom, ville, etat);
parcMap.put(p, null);
}
scan.close();
}
}
public static void main(String[] args) throws IOException
{
lireBddParcs("parcs.txt");
}
}
parc.txtが含まれている区切り文字でいくつかの問題があります。 私は
Great America Chicago Illinois
Magic mountain Los Ageles Californie
Six Flags over Georgia Atlanta Georgie
Darien Lake Buffalo New York
La Ronde Montreal Quebec
The Great Escape Lake Georges New York
Six Flags New Orleans New Orleans Louisiane
Elitch Gardens Denver Colorado
Six Flags over Texas Arlington Texas
Six Flags New England Springfield Massachusetts
Six Flags America Washington D.C.
Great Adventure Jackson New Jersey
が、私はこれを取得:私は良い3時間のプログラムを修正しようとしている
--------------------Configuration: <Default>--------------------
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at b.lireBddParcs(b.java:54)
at b.main(b.java:94)
。そして、私はダムです。私は何がプログラムに間違っているのか分からない!
あなたは、私たちのためにその空白を少し取り除くことができると思いますか?コードを読んで理解することを簡単にしたいと思うなら、通常は感謝しています。だから、これを行うのがあなたの利点です。 –
また、コード内にいくつかの 'System.out.println(...)'ステートメントを入れて、あなたのコードがどんなStringsを上回っているのか、特に例外がスローされる場所の直前を調べてください。 * hasNextXXX()はそれに続く 'nextXXX()'と一致するはずで、1対1でなければなりません一種の取引。 –
あなたは空のライン賞を受賞しています。 java.util.Scanner.next(Scanner.java:1416)でスレッド内 –