私はこれを数日間グーグルで検索しましたが、あまり運がありませんでした。テキスト ファイルを読み取り、その情報を使用して、クラス オブジェクトの配列のプライベート フィールドを設定しようとしています。私はJavaが初めてで、プログラミング全般にかなり慣れていません。
配列に読み込むために私が思いついたのは本当に不格好なようで、もっと良い方法があるに違いないと感じていますが、この特定の種類のケースの良い例を見つけることができません.
これを機能させる唯一の方法は、一連の文字列変数を作成することでした。おそらく main はこれを行うのに適していません。おそらくスキャナーはここでは悪い選択ですか?
この状況を実装するためのより良い方法は何ですか?
行の空白で区切られた文字列と整数を含むテキスト ファイルは、次のようになります。
ジョー 2541 555-1212 345 1542 タイプ
ボブ 8543 555-4488 554 1982年型…など
メイン内にあるこれまでのコードの大部分は次のとおりです。
Scanner in = new Scanner(new FileReader("accounts.txt")); //filename to import
Accounts [] account = new Accounts [10];
int i = 0;
while(in.hasNext())
{
account[i] = new Accounts();
String name = in.next();
String acct_num = in.next();
String ph_num = in.next();
String ss_num = in.next();
int open_bal = in.nextInt();
String type = in.next();
account[i].setName(name);
account[i].setAcctNum(acct_num);
account[i].setPhoneNum(ph_num);
account[i].setSSNum(ss_num);
account[i].setOpenBal(open_bal);
account[i].setType(type);
i++;
}
class Accounts
{
public Accounts()
{
}
public Accounts(String n, String a_num, String ph_num,
String s_num, int open_bal, String a_type, double close_bal)
{
name = n;
account_number = a_num;
phone_number = ph_num;
ssn = s_num;
open_balance = open_bal;
type = a_type;
close_balance = close_bal;
}
public String getName()
{
return name;
}
public void setName(String field)
{
name = field;
}
public String getAcctNum()
{
return account_number;
}
public void setAcctNum(String field)
{
account_number = field;
}
//And so forth for the rest of the mutators and accessors
//Private fields
private String name;
private String account_number;
private String phone_number;
private String ssn;
private int open_balance;
private String type;
private double close_balance;
}