私はここにいるので少し忍耐を示してください。私は外部ファイルからデータを読み込み、2つの配列に情報を格納しようとしています。外部ファイルから行を読み込んで配列を配列に格納する
0069 723.50
0085 1500.00
0091 8237.31
私が入力を読み取るために2台のスキャナーを使用していると私は私が印刷しようとすると、結果はOKに見えるので、彼らはOK仕事だと思う: ファイルには、次のようになります。 私の最初の問題は、nextInt()を使ってリストの最初の数字を読むことができますが、 "java.util.InputMismatchException"メッセージを受け取るので、二重のものにnextDouble()を使うことができないことです。そのため私はそれを文字列として読みます。他の2つのスキャナの部分は、異なる入力ファイルに対して、最初の部分が行うべきことをするはずですが、問題は同じです。 私の次に大きな問題は、今まで2つの列の値を2つの異なる配列に格納できないことです。私はいくつかの方法(すべてコメント)を試みましたが、すべて失敗します。助けてくれてありがとう。あなたがnextInt()
機能を使用してdoubleを読み込むしようとするため
import ui.UserInterfaceFactory;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.Scanner;
import ui.UIAuxiliaryMethods;
public class Bank {
static final int MAX_NUMBER_OF_ACCOUNTS = 50;
PrintStream out;
Bank(){
UserInterfaceFactory.enableLowResolution(true);
out = new PrintStream(System.out);
}
void readFiles(){
Scanner balanceFile = UIAuxiliaryMethods.askUserForInput().getScanner();
while(balanceFile.hasNextLine()){
String balance_Line = balanceFile.nextLine();
Scanner accountsFile = new Scanner(balance_Line);
int account = accountsFile.nextInt(); //works
out.printf("%04d ",account);
/*int [] accounts_array = new int [MAX_NUMBER_OF_ACCOUNTS]; //does not store the values properly
int account = accountsFile.nextInt();
for(int j=0; j < accounts_array.length; j++){
accounts_array[j] = account;
}*/
/*int [] accounts_array = new int [MAX_NUMBER_OF_ACCOUNTS]; //java.util.InputMismatchException
for(int j=0; j < accounts_array.length; j++){
accounts_array[j] = accountsFile.nextInt();
//out.printf("%04d \n",accounts_array[j]);
}*/
String balance = accountsFile.nextLine(); //problem declaring balance as a double
out.printf("%s\n",balance);
/*String [] balance_array = new String [MAX_NUMBER_OF_ACCOUNTS]; //java.util.NoSuchElementException
for(int j=0; j < balance_array.length; j++){
accountsFile.useDelimiter(" ");
balance_array[j] = accountsFile.next();
//out.printf("%04d \n",accounts_array[j]);
}*/
}
Scanner mutationsFile = UIAuxiliaryMethods.askUserForInput().getScanner();
while(mutationsFile.hasNext()){
String mutation_Line = mutationsFile.nextLine();
Scanner mutatedAccountsFile = new Scanner(mutation_Line);
int mutated_account = mutatedAccountsFile.nextInt();
out.printf("%04d ",mutated_account);
int action = mutatedAccountsFile.nextInt(); //deposit or withdrawal
/*if (action == 1){
}else{
}*/
out.printf(" %d ",action);
/*Double amount = mutatedAccountsFile.nextDouble();
out.printf(" %5.2f ",amount);*/
String amount = mutatedAccountsFile.nextLine();
out.printf("%s\n",amount);
}
}
void start(){
new Bank();readFiles();
}
public static void main(String[] args) {
new Bank().start();
}
}
完全なエラーメッセージを投稿してください。 – shmosel