1

ユーザーが指定したカスタム形式に従って書式設定されたレポートに、ニュージーランドとオーストラリアの銀行口座を表示します。たとえば、NZ の銀行口座は 00-0000-0000000-000 で、最後の桁 (銀行口座のサフィックス) はオプションです。フォーマットには次の 2 つの部分があります。

  • ダッシュの配置
  • 2 桁のプレフィックス

サンプル形式の銀行口座は、01-1234-1234567-55 および 01-1234-1234567-002 です。銀行口座は、フォーマットなしでデータベースに保存されます。String.Format("{0:00-0000-0000000-00#}",121234123456712) を試したところ、予想される 12-1234-1234567-12 ではなく 01-2123-4123456-712 が返されました。

当然のことながら、いつでも銀行口座の長さをテストして switch ステートメントを実行できますが、形式はユーザー定義です。

以下により、ダッシュが正しく配置され、接尾辞が正しいことが保証されます。

// ensure there is a format to use and a bank account is present
if (bankaccountformat != "" && bankaccountformat.Contains('-') && bankaccount != "")
{
  int i = 0;
  foreach (char dash in bankaccountformat)
  {
    // add dash in bank account, if bank account is long enough
    if (dash == '-' && bankaccount.Length > i)
    {
      bankaccount = bankaccount.Insert(i, "-");
    }
    i++;
  }
}

問題はアカウントが有効かどうかではなく、フォーマットです。アカウントをフォーマットするためのより良い方法を教えてください。

4

1 に答える 1