初めてのポスター。arraylistsに追加するテキストファイルのエントリを分割する
私はいつもこのサイトを使用していますが、現在は問題の解決策を見つけることができませんので、質問してみます。申し訳ありませんが、回避するのが簡単かもしれませんが、今数時間試しています。私は以下のリストのテキストファイルだ
:
今1,John,Spiteri,99845124,10/05/2018,2
2,Kate,Galea,79451245,10/05/2018,4,Highchair required
1,Peter,Zahra,79845731,21/07/2018,3
3,Alice,Carabott,99468791,10/05/2018,10
4,James,Dingli,99364125,10/05/2018,15,Birthday
2,Kim,Fenech,99871632,21/07/2018,4,Cake Ordered
5,George,Pace,79541247,10/05/2018,2,Vegetarian Menu
3,Jack,Vella,99451785,21/07/2018,2
を、私はそれ自身のArrayListにそれぞれ固有の値を格納する必要があります。これは簡単です。コンマで区切られたデータを保持する変数を使用して、拡張されたforloopを実行してください。各行はそれ自身の予約です。コメントはオプションであるため、すべてがコメントではありません。これは、私が手作業でチェックしなければならないように分割を使用し、何もない場合は、arraylistに空の文字列値を追加します。
私の考え(悪いかもしれない)は、7までカウントされた変数を使用して、各arraylistに特定の値を追加するようにリセットしました。しかし、私は最初の行の最後の値に達したときに問題があります。何らかの理由で、数値2に達すると、それが別々に表示されているにもかかわらず、NumberFormatExceptionというエラーが発生します。また、コメントがあるかどうかを確認するif文も動作していません。
私は以下の方法を掲載します。手を貸せる人がいたら、私はそれを感謝します:)私はただの説明に気をつけません、私はここでチートしないことを学ぶためにここにいます。ありがとう。
ArrayList<Integer> tableNumbers = new ArrayList<>();
ArrayList<String> names = new ArrayList<>();
ArrayList<String> surnames = new ArrayList<>();
ArrayList<String> contacts = new ArrayList<>();
ArrayList<String> dates = new ArrayList<>(); // To be changed!!!
ArrayList<Integer> quantities = new ArrayList<>();
ArrayList<String> comments = new ArrayList<>();
int counter = 0;
String[] bookList = bookings.split(",");
for(String element: bookList){
counter++;
System.out.println(element);
if(counter == 1)
tableNumbers.add(Integer.parseInt(element));
if(counter == 2)
names.add(element);
if(counter == 3)
surnames.add(element);
if(counter == 4)
contacts.add(element);
if(counter == 5)
dates.add(element);
if(counter == 6)
quantities.add(Integer.parseInt(element)); // Line 86
if(counter == 7){
char comment = element.charAt(0);
if(element.length() < 2 && Character.isDigit(comment)){
comments.add(" ");
tableNumbers.add(Integer.parseInt(element));
counter = 1;
}
else {
comments.add(element);
counter = 0;
}
}
}
エラーメッセージ:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2
2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at bistronomic.restaurant.Main.loadBookings(Main.java:86)
at bistronomic.restaurant.Main.<init>(Main.java:108)
at bistronomic.restaurant.Main$7.run(Main.java:387)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
質問を編集して、変数名、連絡先、日付などの宣言を含めることはできますか? – Keara
arrylist初期化を追加しました。 – Doomsayer
素晴らしい!ありがとう。エラーがtableNumbers.add(...)行にスローされていないことを確かめますか?エラーメッセージ全体を投稿して、正確にどの行が参照されているかを示すことができます。 – Keara