0

私はこれを数日間グーグルで検索しましたが、あまり運がありませんでした。テキスト ファイルを読み取り、その情報を使用して、クラス オブジェクトの配列のプライベート フィールドを設定しようとしています。私は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;
} 
4

2 に答える 2

0
于 2014-02-16T22:17:04.770 に答える