0
我必須檢索三個輸入一個整數,一個字符串和一個雙精度;這裏就是我想我會做[注:包含字符串的空間]使用掃描儀對象讀取一系列輸入
record.setAccountNumber(input.nextInt());
record.setName(input.nextLine());
record.setBalance(input.nextDouble());
我試着在
record.setName(input.nextLine());
與輸入input.next更換input.nextLine()() ,由於InputMisMatchException,但問題仍未解決。該錯誤被拋出,因爲一個double值可能被分配給一個新的行值[這是我認爲不確定]有沒有辦法檢索包含空格的字符串,並能夠完成我必須輸入的三個輸入同時。感謝
注:我無法找到任何有關問題這一個 讓我補充內發生錯誤
public void addAccountRecords(){
AccountRecord record = new AccountRecord();
input = new Scanner (System.in);
try {
output = new Formatter("oldmast.txt");
} catch (FileNotFoundException e) {
System.err.println("Error creating or opening the file");
e.printStackTrace();
System.exit(1);
} catch (SecurityException e){
System.err.println("No write access to this file");
e.printStackTrace();
System.exit(1);
}
System.out.println("Enter respectively an account number\n"+
"a name of owner\n"+"the balance");
while (input.hasNext()){
try{
record.setAccountNumber(input.nextInt());
record.setName(input.nextLine());
record.setBalance(input.nextDouble());
if (record.getBalance() >0){
output.format("%d\t%s\t%,.2f%n",record.getAccountNumber(),
record.getName(),record.getBalance());
record.setCount((record.getCount()+1));
}else
System.err.println("The balance should be greater than zero");
}catch (NoSuchElementException e){
System.err.println("Invalid input, please try again");
e.printStackTrace();
input.nextLine();
}catch (FormatterClosedException e){
System.err.println("Error writing to File");
e.printStackTrace();
return;
}
System.out.println("Enter respectively an account number\n"+
"a name of owner\n"+"the balance\n or End of file marker <ctrl> z");
}//end while
output.close();
input.close();
}//end AddAccountRecords
耶肯定的作品,但不是使用ASD嘗試使用[爲d]與一個空間,我不知道它是否會工作。 – 2013-02-28 16:05:33
@RuruMorlano這是我的第二個音符。如果你在中間有一個空格,你應該分別詢問int,string和double(即在單獨的行上)。 – assylias 2013-02-28 16:07:52