簡単に言ってください、私は独学で、これらすべてにかなり慣れていません。それで、アドレス帳を書こうとしていました。すべてが正常に機能し、エラーも例外もありませんでした。プロジェクトを保存し、ラップトップを切り替えて、昼食に行きました。戻ってきて、コードを実行しようとしましたが、エラーが発生しました。
例外に基づいて、それが私のスキャナーと関係があることを知っています。ハイライトされた例外
int phone = inFile.nextInt()
問題として。しかし、私はそれの何が悪いのか理解できません。
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.AddressBook.main(AddressBook.java:255)
コード
public class AddressBook
{
static Scanner inFile;
static FileWriter outFile;
static ArrayList<extPerson> person;
static extPerson record;
static File fileName = new File("AddressBook.txt");
private boolean b;
メインのコードは次のとおりです。
public static void main(String[]args) throws IOException
{
int option = 0;
int n = 0;
AddressBook ab = new AddressBook();
inFile = new Scanner(new FileReader(fileName)).useDelimiter("[|\\n]");
//System.out.println(inFile.delimiter());
//int count = 0;
while(inFile.hasNext())
{
String fName = inFile.next();
//System.out.print(fName);
String mName = inFile.next();
//System.out.print(mName);
String lName = inFile.next();
//System.out.print(lName);
int phone = inFile.nextInt();
//System.out.println(phone);
String relationship = inFile.next();
//System.out.print(relationship);
int day = inFile.nextInt();
//System.out.print(day);
int month = inFile.nextInt();
//System.out.print(month);
int year = inFile.nextInt();
//System.out.print(year);
String street = inFile.next();
//System.out.print(street);
String city = inFile.next();
//System.out.print(city);
String state = inFile.next();
//System.out.print(state);
String zipCode = inFile.next();
//System.out.println(zipCode);
record = new extPerson(fName, mName, lName, phone, relationship,
day, month, year, street, city, state, zipCode);
person.add(record);
}
while (true)
{
String input = JOptionPane.showInputDialog(
"Please Enter a number indicating your choice of action:"
+ "\nEnter 1 To Add Record"
+ "\nEnter 2 To Search Record By Last Name"
+ "\nEnter 3 To Delete Record"
+ "\nEnter 4 To Modify Record"
+ "\nEnter 5 To Display All Records"
+ "\nEnter 6 To Exit");
if((input != null)&&(input.isEmpty() != true))
{
option = Integer.parseInt(input);
if((option > 0 ) && (option < 7))
{
switch (option) {
case 1:
ab.addRecord();
break;
case 2:
ab.searchRecord();
break;
case 3:
ab.deleteRecord();
break;
case 4:
ab.modifyRecord();
break;
case 5:
ab.allRecord();
break;
case 6:
System.exit(0);
}
}
else if(option == JOptionPane.CLOSED_OPTION)
{
n = JOptionPane.showConfirmDialog(null, "Are you sure you want to close?");
if(n == JOptionPane.YES_OPTION)
System.exit(0);
}
}
else if (input == null)
{
n = JOptionPane.showConfirmDialog(null, "Are you sure you want to close?",
"Confirm",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
if(n == JOptionPane.YES_OPTION)
System.exit(0);
}
else
{
System.out.println("Invalid option. Please try again.");
}
}
}
正しい方向に向けて、おそらくこの例外の原因を説明してくれる人が必要です。どんな助けでも大歓迎です。問題を分析するためにさらにコードが必要な場合は、お知らせください。投稿します。再度、感謝します。
EDIT サンプルデータ
Jeremy|Ronald|Wright|4331732|Family Member|06|04|2013|Eastlawn|Orange Cove|Texas|06666-9139
Heather|Paula|Perkins|7285248|Friends|04|06|2013|Bashford|Yuba City|New Mexico|99585-6820
Edward|Stephen|Allen|7186971|Family Member|25|06|2013|Reinke|Downey|Arizona|15915-9508
Dorothy|Philip|Robinson|8932173|Business Associate|15|07|2013|Harper|La Verne|Montana|37275-3957
Joan|Harry|Wilson|3859088|Business Associate|01|02|2014|Eastlawn|Antioch|Maryland|85923