私は現在、Javaの割り当てを書こうとしています。Javaがテキストファイルを読み込もうとしているときにランタイムエラーが発生しました
- 文字列に
- 電源を入れ
- がオブジェクトにこれらの変数を割り当て、二重、独自の個々の文字列/ INT /に各ラインの各部分をあらかじめ記述テキストファイル
- 電源を入れ、各ラインの各ラインを読みます私はまた、この割り当て
- 印刷クラスのいずれかを使用して、オブジェクトの各変数の一部として作成したクラスの(オブジェクトのアレイの一部である)メソッド
しかし、このエラーメッセージが表示されているランタイムの問題が繰り返し発生しています。 java.util.Scanner.nextでjava.util.Scanner.throwForで
スレッドの例外 "メイン" java.util.NoSuchElementException (Scanner.java:862) (Scanner.java:1371) Lab2.main(Lab2.java:27)
これはおそらく私が誤ってテキストファイルを読んでいると信じています。しかし、私が何をしても、正しく読むことができないようです。それは、名字、姓、3つの別々のコンポーネント(1つの文字列に連結する)、都市、州、郵便番号(整数として)、電話番号(文字列として)ドル金額(ダブル)。
私は、都市名から問題が発生する可能性があると考えています。都市名にはいくつかのスペースがあるためです。私は私がこれを解決したと思った。各文字列をタブ(これは他のすべての要素が区切られている)に読み込むスキャナの区切り文字を設定することによって解決したと思ったが、これはうまくいかなかった(そして状態名を整数Integer.parseInt()静的メソッドを介して)、問題ではありません。私が言ったように、私はアイデアがなく、ここで私を助けることができる誰にとっても感謝しています!
以下のコードを記載します。最初にメインファイルがあります。
public class Lab2
{
public static void main(String[] args) throws IOException
{ String FirstName, LastName, Address1, Address2, Address3, AddressFull, City, State, Phone, ZipString, DonString, line = "blank";
int Zip;
double Donation;
Scanner fileScan = new Scanner(new File("Lab2.txt")), lineScan = new Scanner(line);
lineScan.useDelimiter("\t");
PersonStats[] Donators = new PersonStats[25];
for (int i = 0; i < Donators.length; i++)
{ line = fileScan.nextLine();
FirstName = lineScan.next();
LastName = lineScan.next();
Address1 = lineScan.next();
Address2 = lineScan.next();
Address3 = lineScan.next();
AddressFull = Address1 + " " + Address2 + " " + Address3;
City = lineScan.next();
State = lineScan.next();
ZipString = lineScan.next();
Zip = Integer.parseInt(ZipString);
Phone = lineScan.next();
DonString = lineScan.next();
Donation = Double.parseDouble(DonString);
Donators[i] = new PersonStats(FirstName, LastName, AddressFull, City, State, Zip, Phone, Donation);
Donators[i].PrintOut();
}
}
}
次に、割り当てのために書き留めたクラスファイル。
public class PersonStats
{ private String FirstName, LastName, Address, City, State, Phone;
private int Zip;
private double Donation;
public PersonStats(String first, String last, String area, String town, String feifdom, int postcode, String telegraph, double given)
{ FirstName = first;
LastName = last;
Address = area;
City = town;
State = feifdom;
Zip = postcode;
Phone = telegraph;
Donation = given;
}
public void PrintOut()
{ System.out.println(FirstName + " " + LastName);
System.out.println(Address);
System.out.println(City + ", " + State + " " + Zip + "\n");
System.out.println(Phone + " " + Donation);
}
}
そして最後にプログラムがから読み込むことになっているテキストファイルには、(ちょうど都市名でものを除き、各スペースを覚えていることは、実際のタブで、読みは少し難しいかもしれません)。
Rick James 8276 Carlos Ave Las Vegas NV 87126 5553451567 23.95
John Gibson 9127 Oak Dr Corvallis OR 97330 5552812313 156.78
Ron Wills 1155 Ivy Pl Atlantic Ga 37339 5552123145 189.56
Rita Jones 1259 Chase Ave Las Vegas NV 87126 5554445671 2145.60
Jason Knight 7154 Pine Dr Gresjam OR 97380 5558124545 3157.44
Clara Swanson 1944 Main Pl Springfield OR 97339 5552123144 212.99
Robert Peck 1866 First Ave Las Vegas NV 87126 5553455425 250.00
Dora Garcia 2179 Fir Dr Corvallis OR 97330 5552812919 350.00
Peter Keck 1465 Circle Pl Gold Beach OR 97339 5552123256 2150.00
Stuart Smith 2387 Sweek Ave Las Vegas NV 87126 5553455489 650.99
Tyler Wild 1313 Spooky Ln Corvallis OR 97330 5552813213 587.45
Laretta Peters 2224 Chase Pl Monmouth OR 97361 5552124465 123.45
Kristi Emry 3465 Cerrito Ave Las Vegas NV 87126 5553455567 3212.65
Kelli Gard 1894 Elm Dr Corvallis OR 97330 5552816678 51.00
Jacob Andrews 8159 Rose Ct Mill City OR 97322 5552127879 64.00
Ryan Perkins 7546 Prince Ave Las Vegas NV 87126 5553451989 13.00
Joshua Gilbert 9278 Monroe Dr Corvallis OR 97330 5552832656 95.00
Miles Crain 4578 Chester Dr Corvallis OR 97331 5552345678 1544.00
Butch Cassidy 5498 Sutton Pl Gresham OR 97380 5416565797 1798.56
Perry Winkle 8185 Shaver Ave Las Vegas NV 87126 5553812346 195.66
Loni Day 4598 Holmen Dr Corvallis OR 97330 5555289741 1878.50
Nikita Benson 1787 Grant Pl Portland OR 97321 5553569898 1500.00
Rusty Krouger 8829 Simeon Ave Las Vegas NV 87126 5555677847 2100.00
Wally Wallace 2898 Wilson Blvd Jackson Center OH 23466 5552222222 2222.22
Joe Jones 1212 Water St Millersburg OR 97366 5555555555 55.55
これで私を助けることができる人がいる場合は、先にありがとうございます。あなたのアドバイスは人生を救うかもしれません!又は少なくともこのラボのスコア:ここでS
チェックhttp://stackoverflow.com/questions/13102045/skipping-nextline-after-using-next-nextint-or-other-nextfoo-methods。なぜあなたは 'FileReader' +' BufferedReader'を使用していませんか? – TheLostMind
対応する 'next〜':hasNextLine'、 'hasNext'を実行する前に多くのチェックが存在します。 –
サンプルテキストファイルはタブで実際に区切られていません。私は5人の詳細レコードのテキストファイルであなたのための作業コードを投稿しています –